![MATLAB課件第七講.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/7/01f26eeb-f1b1-48b4-844c-6f7b8b00774f/01f26eeb-f1b1-48b4-844c-6f7b8b00774f1.gif)
![MATLAB課件第七講.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/7/01f26eeb-f1b1-48b4-844c-6f7b8b00774f/01f26eeb-f1b1-48b4-844c-6f7b8b00774f2.gif)
![MATLAB課件第七講.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/7/01f26eeb-f1b1-48b4-844c-6f7b8b00774f/01f26eeb-f1b1-48b4-844c-6f7b8b00774f3.gif)
![MATLAB課件第七講.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/7/01f26eeb-f1b1-48b4-844c-6f7b8b00774f/01f26eeb-f1b1-48b4-844c-6f7b8b00774f4.gif)
![MATLAB課件第七講.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/7/01f26eeb-f1b1-48b4-844c-6f7b8b00774f/01f26eeb-f1b1-48b4-844c-6f7b8b00774f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章: 字符串處理,1. 字符陣列,2. 字符串單元陣列,3. 字符串比較,4. 字符串搜索與取代,5. 字符串與數(shù)值之間的 轉(zhuǎn)換,6. 綜合設(shè)計實例及字符 串函數(shù),7.1 字符陣列,在MATLAB中,字符陣列也稱為字符串,MATLAB 提供了建立和處理字符串的函數(shù),這樣使MATLAB具備 字符處理能力,甚至可設(shè)計簡單的數(shù)據(jù)庫管理系統(tǒng)。 在MATLAB中可使用漢字,這對我們來說是特別有 用的,比如注釋等。 字符串輸入時應(yīng)用單引號括起來。若檢查其類型,用 class(A); ans = char,eg1: name=西安電子科技大學(xué); class(name) ans =char size(na
2、me) ans =1 8 這說明每個漢語只占用一個字符位置, 這一點與 其它語言略有不同。 eg2: name1=MATLAB; size(name1) ans = 1 6,建立二維字符陣列 確保每行上的字符數(shù)相等 如果長度不等,用blanks函數(shù)補空格 當(dāng)從字符陣列中提取字符串時,利用deblank函數(shù)刪除字符串末尾多余的空格 eg3: A=signal processing; B=filter design; C=genetic algorithm; disp(length(A), length(B), length(C); 17 13 17 BOOK=A;B blanks(4);C,BO
3、OK = signal processing filter design genetic algorithm,eg4: str1=BOOK(2,:); str1= filter design length(str1); ans=17 str2=deblanks(str1); length(str2); ans=13,7.2 字符串單元陣列,利用字符串單元陣列存儲字符串,方便、靈活 字符串單元陣列函數(shù): cellstr: 字符陣列轉(zhuǎn)換為字符串單元陣列 char: 字符串單元陣列轉(zhuǎn)換為字符陣列, 而且自動添加空格,eg5: bookcell=cellstr(BOOK); length(bookce
4、ll2); ans=13 BOOK1=char(bookcell),bookcell = signal processing filter design genetic algorithm,BOOK1 = signal processing filter design genetic algorithm,7.3 字符串比較,字符串比較方式有 比較兩個字符串或其部分是否相同; 比較兩個字符串中的個別字符是否相同; 對字符串中的每個元素進(jìn)行歸類(如是否為英文字母) 一、比較字符串是否相同 strcmp 比較兩個字符串是否相同 strcmpi 比較兩個字符串是否相同(忽略大小寫) strncmp 比
5、較兩個字符串的前n個字符是否相同 strncmpi 比較兩個字符串的前n個字符是否相同(忽略大 小寫),eg6,在MATLAB中輸入 str1=hello;str2=help; str3=Hello; k1=strcmp(str1,str2) k1 =0 k2=strcmp(str1,str3) k2 = 0 k3=strcmpi(str1,str3) k3 =1 k4=strncmp(str1,str2,3) k4 =1 當(dāng)待比較相同時,返回值為邏輯真(1),else 0。 注意,它與C語言中的strcmp()函數(shù)相反,在C中,當(dāng)兩個子字符串相同時,返回值為0。,二、比較字符是否相同 當(dāng)要比
6、較兩個字符串中個別字符是相同時,可采用MATLAB 的關(guān)系操作符。 eg7 str1=hello; str2=help!; k=str1=str2 k =1 1 1 0 0 實際上,還可以采用其它的關(guān)系操作符(、 、?。?,這樣就可以比較兩字符串的大小關(guān)系,當(dāng) 然實際確定其大小關(guān)系時采用的是其ASCII碼。 eg8 A=abcd; B=aabe; k1=AB k1 = 0 1 1 0 k2=A=B k2 =1 1 1 0,k3=AB k3 = 0 0 0 1,三、英文字母的檢測 isletter:檢測字符串是否有英文字母或是否全部由字母構(gòu)成 isspace:檢測字符串是否有空格 eg9 myad
7、dr=XiDian 134; letter=isletter(myaddr) letter =1 1 1 1 1 1 0 0 0 0 space=isspace(myaddr) space =0 0 0 0 0 0 1 0 0 0 利用isletter和isspace這兩個函數(shù)可檢測字符串是否全部由字母和空格構(gòu)成。,eg10: str1=I wish this book can be beneficial to you; let1=isletter(str1); let2=isspace(str1); let3=let1|let2; if all(let3) disp(所有字符均為英文字母或空
8、格) else disp(字符中包含非英文字母和空格) end 執(zhí)行后得: 所有字符均為英文字母或空格 如果輸入改為 str1=My post address is XiDian Box 134; 則執(zhí)行后得: 字符中包含非英文字母和空格,7.4 字符串搜索與取代,MATLAB為字符串的搜索與取代提供了幾個函數(shù)findstr、strmatch、strrep、strtok等,這幾個函數(shù)的靈活運用,可完成比較復(fù)雜的任務(wù)。例如 str=Example 12 made on 10/15/99; k=findstr(str,10) %字符位置的搜索 k = 20 str1=strrep(str,15,1
9、8) %字符替代 str1 = Example 12 made on 10/18/99 這里將str中的日期修改為1999年10月18日,利用strtok可找出字符串的第一個單詞(第 一個分隔符之前的字符串): str2=strtok(str1) str2=Example 利用strtok函數(shù)還可以完成從英文句子中提取單詞,例如我們可編寫函數(shù): function allwords=words(sentence) r=sentence; allwords=; while (any(r) w,r=strtok(r); allwords=strvcat(allwords,w); End %字符串的垂
10、直連接,這時輸入 str1=I wish this book can be beneficial to you; str1words=words(str1) str1words = I wish this book can be beneficial to you,7.5 字符串與數(shù)值之間的變換,MATLAB提供了一組函數(shù)可用來在各種數(shù)制之間進(jìn)行變換。例如 x=53176251; y=int2str(x) y = 53176251 whos Name Size Bytes Class x 1x1 8 double array y 1x8 16 char array Grand total is
11、 9 elements using 24 bytes 從這可以看出,x只占用一個存儲單元(8個字節(jié)),而當(dāng)它變換成字符時占用了8個字符單元(每個單元占用2個字節(jié))。,在表示成字符串時,還可以指定位數(shù),如 p=num2str(pi,8) p = 3.1415927 d1=bin2dec(10101) d1 = 21 b1=dec2bin(d1,8) b1 = 00010101 d2=hex2dec(A1B) d2 = 2587 h2=dec2hex(d2,4) h2 = 0A1B,d3=base2dec(12210,3) d3 = 156 t3=dec2base(d3,3) t3 = 12210
12、 其中,最后一組為將三進(jìn)制數(shù)12210變換成十進(jìn)制數(shù),并反之。,只有利用num2str函數(shù)才能將含小數(shù)的數(shù)值變換成字符串,從而在圖形標(biāo)題或標(biāo)記中使用數(shù)據(jù)相關(guān)的數(shù)值。例如,假設(shè)已利用plot(x,y)繪制出圖形,則可給x軸加上這樣的標(biāo)記: str1=num2str(min(x); str2=num2str(max(x); str=Vaue of x is from ,str1, to ,str2; xlabel(str),7.6 綜合設(shè)計示例,詳見P321,7.7 字符串函數(shù),字符串函數(shù),字符串測試函數(shù),字符串操作函數(shù),字符串與數(shù)值之間的變換,數(shù)制變換函數(shù),習(xí) 題,1. 在-1,1區(qū)間上繪制出y=-2x2+4的曲線, 并在圖中標(biāo)注出最大值點的坐標(biāo). 2. 任意給定一句英文句子, 請?zhí)崛∑?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作宣傳海報合同范本
- 2014網(wǎng)簽合同范本
- 勞務(wù)合同范例重寫
- 2025年度客運站旅客信息服務(wù)系統(tǒng)升級合同
- 保證合同范例 博客
- 農(nóng)村保姆協(xié)議合同范本
- 深化教育改革與人才培養(yǎng)質(zhì)量提升并行
- 分公司 保證合同范例
- 村計生專干申請書
- otc藥品銷售合同范本
- 對高質(zhì)量教育發(fā)展看法和建議
- 山西省晉中市2023-2024學(xué)年高一上學(xué)期期末考試 數(shù)學(xué) 含解析
- 浙江省2023年高中信息技術(shù)學(xué)業(yè)水平考試檢測卷(四)(含答案解析)
- 2024年重慶市公務(wù)員考試《行測》真題及答案解析
- 2025新外研社版英語七年級下單詞表
- 選擇性必修中冊寫作任務(wù)·申論
- 《冠心病病人的護理》課件
- 紅樓夢閱讀單選題100道及答案解析
- 醫(yī)用超聲診斷裝置相關(guān)項目實施方案
- 監(jiān)理專題安全例會紀(jì)要(3篇)
- GB/T 17374-2024食用植物油銷售包裝
評論
0/150
提交評論