《matlab第六章 字符串处理.ppt》由会员分享,可在线阅读,更多相关《matlab第六章 字符串处理.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第七章第七章 字符串处理字符串处理 7.1字符阵列在MATLAB中,每个字符按16位ASC码储存,这大大方便了在MATLAB中使用双字节内码字符集,如汉字系统。利用double和char函数可在字符与ASC码之间进行转换。一、字符与ASCII码之间的变换 利用double函数和char函数可实现在字符与其ASCII码之间进行变换。例如:name=河北大学%字符串 a=double(name)%转变为ASCII码 name=char(a)%ASCII码转变为字符二、建立二维字符阵列 注意:建立二维阵列时,应注意确保每行上的字符数相等,如果长度不等,应在其后补空格。可以利用blanks(n)函数
2、来添加空格。利用deblank函数可以删除字符串末尾多余的空格。例如:s1=welcome to hebei university s2=you are welcome to my hometown s=s1blanks(3);s27.2 字符串单元阵列 字符串单元阵列中每个元素均为字符串,而且已经删除了末尾的空格。1.利用cellstr函数可以方便的将字符阵列变换成字符串单元阵列 例如:cell=cellstr(s)2.利用char函数可以进行反变换 例如:s=char(cell)7.3字符串比较比较字符串的方式:1,比较两个字符串或其部分是否相同;2,比较两个字符串中个别字符是否相同 3,
3、可对字符串中的每个元素进行归类。7.3字符串比较一、比较字符串是否相同 strcmp函数用于比较字符串是否相同strcmpi函数用于比较时忽略大小写strncmp函数用于比较两个字符串的前n个字符是否相同strncmpi函数比较时忽略大小写例如:s1=help,s2=hello,s3=Hellok1=strcmp(s1,s2)则k1=0k2=strcmpi(s1,s3)则k2=1二、比较字符是否相同利用关系操作符。三、英文字母的检测 isletter函数和isspace函数,返回结果为(1)或假(0)。例如:s=hebei 2004 letter=isletter(s)space=isspac
4、e(s)7.4 字符串搜索与取代字符串搜索与取代 利用findstr(查找某个字符串)strmatch(字符串匹配)strrep(修改字符串)strtok(提取字符串的首部)等函数可以完成字符串的搜索与取代 例如:function allwords=words(sentence)r=sentence allwords=;While(any)w,r=strtok(r)Allwords=strvcat(allwords,w)7.5 字符串与数值之间的变换常用的有 int2str(数值转换为字符)num2str(含有小数的数值转换为字符)bin2dec(二进制转换为十进制)hex2dec(十六进制转
5、换为十进制)base2dec(三进制转换为十进制)dec2base(十进制转换为三进制)7.7字符串函数,一般命令 1,char 功能:建立字符矩阵 格式:s=char(x)7.7字符串函数2,double 功能:字符阵列变换成双精度数值 格式:y=double(x)3,cellstr 功能:从字符阵列中建立单元阵列 格式:c=cellstr(s)7.7字符串函数,字符串测试 1,ischar 功能:检测到字符阵列时为逻辑真 格式:k=ischar(a)7.7字符串函数,字符串操作 1,strcat 功能:字符串连接 格式:t=strcat(s1,s2,s3.)2,strvcat 功能:字符串
6、的直接连接 格式:t=strvcat(s1,s2,s3.)例1 混合频率信号成分分析,有一信号x由三种不同频率的正弦信号混合而成,通过得到信号的DFT,确定出信号的频率及其强度。程序如下t=0:1/119:1;x=5*sin(2*pi*20*t)+3*sin(2*pi*30*t)+sin(2*pi*45*t);y=fft(x);m=abs(y);f=(0:length(y)-1)*119/length(y);figure(1)Subplot(2,1,1),plot(t,x),grid ontitle(多频率混合信号)ylabel(Inputitx),xlabel(Time)subplot(2,1,2),plot(f,m)ylabel(Abs.Magnitude),grid onxlabel(Frequency(Hertz)