MATLAB字符串、單元數(shù)組和結(jié)構(gòu).ppt_第1頁
MATLAB字符串、單元數(shù)組和結(jié)構(gòu).ppt_第2頁
MATLAB字符串、單元數(shù)組和結(jié)構(gòu).ppt_第3頁
MATLAB字符串、單元數(shù)組和結(jié)構(gòu).ppt_第4頁
MATLAB字符串、單元數(shù)組和結(jié)構(gòu).ppt_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、字符串、單元數(shù)組和結(jié)構(gòu),教學(xué)目標(biāo) 教學(xué)重點 教學(xué)過程,教學(xué)目標(biāo),將介紹三種特殊的數(shù)據(jù)類型,即字符串、單元數(shù)組和結(jié)構(gòu)。 使用這三種數(shù)據(jù)類型,相關(guān)的數(shù)據(jù)可以通過一個單元數(shù)組或是結(jié)構(gòu)進行組織和訪問,數(shù)據(jù)的管理就變得要容易一些。,教學(xué)重點,字符串的設(shè)定和操作 單元數(shù)組的操作 結(jié)構(gòu)型變量的操作,教學(xué)過程,字符串的設(shè)定 字符串的各種操作 單元數(shù)組的生成方法 單元數(shù)組的操作 結(jié)構(gòu)型變量的生成方法 結(jié)構(gòu)型變量的操作,1. 字符串的設(shè)定,在MATLAB 7中的字符串一般是ASCII值的數(shù)值數(shù)組,它作為字符串表達式進行顯示。MATLAB 7對字符串的設(shè)定非常簡單,只需用單引號()將需設(shè)定的字符串引注即可。, st

2、r=I have many good friends! str = I have many good friends! whos Name Size Bytes Class EXPLODE 1x5 40 double array F1 1x12 24 char array F2 1x12 24 char array,2. 字符串的操作,字符串元素的讀取 字符串的基本變換 字符串的運算,(1)字符串元素的讀取,字符串元素的讀取 利用數(shù)組操作工具進行讀取 使用disp函數(shù)顯示字符串, str=今天,是2005年10月25日, 我們班一起去上海旅游。 str = 今天,是2005年10月25日, 我

3、們班一起去上海旅游。 str(6) ans = 0,(2)字符串的基本變換,基本變換的種類 字符串的ASCII碼操作 使用char函數(shù)進行逆變換 字符串的執(zhí)行, for n = 2:3 eval(M num2str(n) = magic(n) %用eval函數(shù)來執(zhí)行字符串。 end M2 = 1 3 4 2 M3 = 8 1 6 3 5 7 4 9 2,常見字符串的操作,(3)字符串的運算,字符串的運算主要是指判斷字符串是否相等,通過字符的運算來比較字符,字符串中字符的分類、查找與替換、字符串與數(shù)值的轉(zhuǎn)換和數(shù)組與字符串的轉(zhuǎn)換等。,判斷字符串是否相等,有兩個函數(shù)可以用來判斷兩個輸入的字符串是否相

4、等。 strcmp函數(shù):比較兩個字符串是否相等,當(dāng)相等時,系統(tǒng)將返回值1,不相等時,返回值0; strncmp函數(shù):比較兩個輸入字符串的前幾個字符是否相等,當(dāng)相等時,系統(tǒng)將返回值1,不相等時,返回值0。, words1=人民文學(xué); words2=人民的同志; N=strcmp(words1,words2) N = 0 Y=strncmp(words1,words2,3) Y = 0 x=strncmp(words1,words2,1) x = 1 ,通過字符的運算比較字符,運算符號的意義,字符串中字符的分類,字符串中的字符通常可以分為空白字符、字母字符和其他類型的字符。用戶可以用islette

5、r和isspace兩個函數(shù)來對字符串中的字符進行分類 。,realstring= realstring = A=isspace(realstring) A = Columns 1 through 11 0 0 0 0 0 0 0 0 0 0 0 Columns 12 through 16 0 0 0 1 1 ,. 查找與替換,查找與替換是字符串操作中的一項重要內(nèi)容,MATLAB 7語言提供了findstr、strfind和strrep等函數(shù)來實現(xiàn)查找與替換操作。, s1=我們班的班長是是趙潔!; s2=strrep(s1,趙潔,黃遠) s2 = 我們班的班長是是黃遠! s3=strrep(s2

6、,黃遠! ,誰?) s3 = 我們班的班長是是誰? ,字符串與數(shù)值的轉(zhuǎn)換,常見的字符串轉(zhuǎn)換函數(shù),字符串與數(shù)值的轉(zhuǎn)換舉例,使用str2num函數(shù)將字符型矩陣轉(zhuǎn)換為數(shù)字矩陣 S = 1 2 ;3 4 S = % S為字符型矩陣 1 2 3 4 X=str2num(S) X = %X為數(shù)字型矩陣 1 2 3 4,2. 單 元 數(shù) 組,直接生成單元數(shù)組 使用cell函數(shù)生成單元數(shù)組 單元數(shù)組的內(nèi)容的顯示或獲取 單元數(shù)組的變維處理,單元數(shù)組就是每個元素為一個單元的數(shù)組。每個單元都可以包含任意數(shù)據(jù)類型的MATLAB數(shù)組。,(1)直接生成單元數(shù)組,用類似矩陣的記號將給復(fù)雜的數(shù)據(jù)結(jié)構(gòu)納入一個變量之下。和矩陣中

7、的圓括號表示下標(biāo)類似,單元數(shù)組由大括號表示下標(biāo)。 A=反對霸權(quán),Wind Gone,100+200*i,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78 A = Columns 1 through 3 反對霸權(quán) Wind Gone 1.0000e+002 +2.0000e+002i Column 4 4x3 double,(2)使用cell函數(shù)生成單元數(shù)組,應(yīng)用舉例: A=cell(2,2) A = A1,1=富強 民主 ;文明 廉潔 A = 2x4 char ,(3)單元數(shù)組的內(nèi)容的顯示或獲取,celldisp(A,Huang) Huang

8、1,1 = 1 2 2 2 Huang2,1 = Tsinghua and Peking Huang1,2 = MATLAB 7 Huang2,2 = 1.0000 + 5.0000i 12.0000 - 4.0000i ,(4)單元數(shù)組的變維處理,前邊所述的對矩陣的變維處理同樣也適用于對單元數(shù)組的變維處理 。 此外還可以使用reshape函數(shù)進行操作。, A=1 2 ;3 4,love;呼喚和平,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78 A = 2x2 double love 呼喚和平 4x3 double a=reshape(A,

9、1,4) a = 2x2 double 呼喚和平 love 4x3 double ,3. 結(jié)構(gòu)型變量,直接輸入法生成結(jié)構(gòu)型變量 使用struct函數(shù)生成結(jié)構(gòu)型變量 在結(jié)構(gòu)體變量中添加成員變量 在結(jié)構(gòu)體變量中刪除成員變量 在結(jié)構(gòu)體變量中調(diào)用成員變量 getefield和setfield函數(shù)的使用,結(jié)構(gòu)體與單元數(shù)組的異同,結(jié)構(gòu)體是根據(jù)屬性名組織起來的不同類型數(shù)據(jù)的集合,其易與單元數(shù)組類型混淆。結(jié)構(gòu)體的每一個元素叫做單元,而每一個單元包含MATLAB7.0數(shù)組。結(jié)構(gòu)體和單元數(shù)組的共同之處在于它們都提供了一種分級存儲機制來存儲不同類型的數(shù)據(jù),不同之處是組織數(shù)據(jù)的方式不一樣。結(jié)構(gòu)體數(shù)組里的數(shù)據(jù)是通過屬性

10、名來引用的,而在單元數(shù)組里,數(shù)據(jù)是通過單元數(shù)組下標(biāo)引用來操作的。,(1)直接輸入法生成結(jié)構(gòu)型變量, student.test=99 56 96 87 67 69 87 76 92; =Wu Qing; student.weight=68; student.height=1.72; student.num=2003214091; student.add=School of civil engneering.Tsinghua university; student.tel=1381042679*;,(2)使用struct函數(shù)生成結(jié)構(gòu)型變量, truct_array=stru

11、ct(d,北京,上海,strengths,40000 1000) d和strengths是屬性 truct_array = d: 北京 上海 strengths: 40000 1000 ,(3)在結(jié)構(gòu)體變量中添加成員變量, student(1).gender=Male; %在student中添加gender和age這2項記錄 student(1).age=25; student(2).gender=Female; student(2).age=21; student %查詢student的結(jié)構(gòu),student = 1x2 struct array with fields: test name

12、weight height num add tel gender age ,(4)在結(jié)構(gòu)體變量中刪除成員變量,使用函數(shù)rmfifld從結(jié)構(gòu)體變量中刪除成員變量 。 student=rmfield(student,age); student = 1x2 struct array with fields: test name weight height num add tel gender,(5) 在結(jié)構(gòu)體變量中調(diào)用成員變量, student(1).test %從結(jié)構(gòu)體變量中取出相關(guān)信息 ans = 99 56 96 87 67 69 87 76 92 student(1).test(5) ans = 67 student(1).add ans = School of civil engneer

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論