《matlab第六章字符串處理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《matlab第六章字符串處理.ppt(17頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第七章 字符串處理,7.1字符陣列,在MATLAB中,每個(gè)字符按16位ASC碼儲(chǔ)存,這大大方便了在MATLAB中使用雙字節(jié)內(nèi)碼字符集,如漢字系統(tǒng)。利用double和char函數(shù)可在字符與ASC碼之間進(jìn)行轉(zhuǎn)換。,一、字符與ASCII碼之間的變換 利用double函數(shù)和char函數(shù)可實(shí)現(xiàn)在字符與其ASCII碼之間進(jìn)行變換。 例如: name=河北大學(xué) %字符串 a=double(name) %轉(zhuǎn)變?yōu)锳SCII碼 name=char(a) %ASCII碼轉(zhuǎn)變?yōu)樽址?二、建立二維字符陣列 注意:建立二維陣列時(shí),應(yīng)注意確保每行上的字符數(shù)相等,如果長度不等,應(yīng)在其后補(bǔ)空格??梢岳胋l
2、anks(n)函數(shù)來添加空格。利用deblank函數(shù)可以刪除字符串末尾多余的空格。 例如: s1=welcome to hebei university s2=you are welcome to my hometown s=s1blanks(3);s2,7.2 字符串單元陣列 字符串單元陣列中每個(gè)元素均為字符串,而且已經(jīng)刪除了末尾的空格。 1.利用cellstr函數(shù)可以方便的將字符陣列變換成字符串單元陣列 例如: cell=cellstr(s) 2.利用char函數(shù)可以進(jìn)行反變換 例如:s=char(cell),7.3字符串比較,比較字符串的方式: 1,比較兩個(gè)字符串或其部分是否相
3、同; 2,比較兩個(gè)字符串中個(gè)別字符是否相同 3,可對(duì)字符串中的每個(gè)元素進(jìn)行歸類。,7.3字符串比較,一、比較字符串是否相同 strcmp函數(shù)用于比較字符串是否相同 strcmpi函數(shù)用于比較時(shí)忽略大小寫 strncmp函數(shù)用于比較兩個(gè)字符串的前n個(gè)字符是否相同 strncmpi函數(shù)比較時(shí)忽略大小寫,例如: s1=help,s2=hello,s3=Hello k1=strcmp(s1,s2) 則k1=0 k2=strcmpi(s1,s3) 則k2=1 二、比較字符是否相同 利用關(guān)系操作符。,三、英文字母的檢測 isletter函數(shù)和isspace函數(shù),返回結(jié)果為(1)或假(0)。 例
4、如:s=hebei 2004 letter=isletter(s) space=isspace(s),7.4 字符串搜索與取代 利用findstr(查找某個(gè)字符串) strmatch(字符串匹配) strrep(修改字符串) strtok(提取字符串的首部) 等函數(shù)可以完成字符串的搜索與取代 例如: function allwords=words(sentence) r=sentence allwords=; While(any) w,r=strtok(r) Allwords=strvcat(allwords,w),7.5 字符串與數(shù)值之間的變換 常用的有 in
5、t2str(數(shù)值轉(zhuǎn)換為字符) num2str(含有小數(shù)的數(shù)值轉(zhuǎn)換為字符) bin2dec(二進(jìn)制轉(zhuǎn)換為十進(jìn)制) hex2dec(十六進(jìn)制轉(zhuǎn)換為十進(jìn)制)base2dec(三進(jìn)制轉(zhuǎn)換為十進(jìn)制) dec2base(十進(jìn)制轉(zhuǎn)換為三進(jìn)制),7.7字符串函數(shù),,一般命令 1,char 功能:建立字符矩陣 格式: s=char(x),7.7字符串函數(shù),2,double 功能:字符陣列變換成雙精度數(shù)值 格式: y=double(x) 3,cellstr 功能:從字符陣列中建立單元陣列 格式:c=cellstr(s),7.7字符串函數(shù),,字符串測試 1,ischar
6、功能:檢測到字符陣列時(shí)為邏輯真 格式:k=ischar(a),7.7字符串函數(shù),,字符串操作 1,strcat 功能:字符串連接 格式:t=strcat(s1,s2,s3.) 2,strvcat 功能:字符串的直接連接 格式: t=strvcat(s1,s2,s3.),例1 混合頻率信號(hào)成分分析,有一信號(hào)x由三種不同頻率的正弦信號(hào)混合而成,通過得到信號(hào)的DFT,確定出信號(hào)的頻率及其強(qiáng)度。程序如下 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 on title(多頻率混合信號(hào)),ylabel(Inputitx),xlabel(Time) subplot(2,1,2),plot(f,m) ylabel(Abs.Magnitude),grid on xlabel(Frequency (Hertz)),