字符串單元數組和結構體ppt課件_第1頁
字符串單元數組和結構體ppt課件_第2頁
字符串單元數組和結構體ppt課件_第3頁
字符串單元數組和結構體ppt課件_第4頁
字符串單元數組和結構體ppt課件_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 第第5章章 字符串、單元數組字符串、單元數組和構造體和構造體第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 教學內容l掌握字符串的生成及操作掌握字符串的生成及操作l掌握單元數組的生成及操作掌握單元數組的生成及操作l掌握構造體的生成及操作掌握構造體的生成及操作第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的生成字符串的生成l字符串的生成字符串的生成 lMATLAB

2、 中的字符串為中的字符串為 ASCII 值的數值數組,值的數值數組,作為字符串表達式進展表示。在作為字符串表達式進展表示。在 MATLAB 中,中,生成字符串的方法為生成字符串的方法為 stringname=the content of the string。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的生成字符串的生成l字符串是一個字符串是一個 ASCII 碼的字符數組,因此,與碼的字符數組,因此,與普通數組一樣,字符串也可以構成矩陣表現為普通數組一樣,字符串也可以構成矩陣表現為一個字符串有多行。但是,這些行必需有一樣一個

3、字符串有多行。但是,這些行必需有一樣數目的列數。數目的列數。l另外,運用另外,運用 char 函數可以創(chuàng)建長度不一致的字函數可以創(chuàng)建長度不一致的字符串矩陣。符串矩陣。char 函數自動將一切字符串的長度函數自動將一切字符串的長度設置為輸入字符串中長度的最大值。設置為輸入字符串中長度的最大值。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的操作字符串的操作 l字符串的顯示字符串的顯示l字符串的顯示有兩種方式:直接顯示和利用字符串的顯示有兩種方式:直接顯示和利用 disp 函數進展顯示。函數進展顯示。l字符串的執(zhí)行字符串的執(zhí)行l(wèi)在

4、在 MATLAB 中可以用函數中可以用函數 eval 來獲得字符來獲得字符串的值。也叫求值函數串的值。也叫求值函數第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的運算字符串的運算l字符串的運算主要包括:l判別字符串能否相等l經過字符串運算來比較字符串中的字符l進展字符分類、查找與交換l字符串與數值數組之間的相互轉換 函數名函數用途函數名函數用途strcat橫向連接字符串strvcat縱向連接字符串strcmp字符串比較strncmp比較字符串的前n 個字符findstr字符串查找strjust字符串對齊strmatch字符串匹

5、配strrep字符串查找與替換strtok選擇字符串中的部分blanks創(chuàng)建由空格組成的字符串deblank刪除字符串結尾的空格ischar判斷變量是否為字符串iscellstr判斷字符串單元數組isletter判斷數組是否由字母組成isspace判斷是否空格stringsMATLAB 字符串句柄第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的比較字符串的比較l字符串的比較主要為比較兩個字符串能否一樣,字符串字符串的比較主要為比較兩個字符串能否一樣,字符串中的子串能否一樣和字符串中的個別字符能否一樣。用中的子串能否一樣和字符串

6、中的個別字符能否一樣。用于比較字符串的函數主要是于比較字符串的函數主要是 strcmp 和和 strncmp。lstrcmp:用于比較兩個字符串能否一樣。用法為:用于比較兩個字符串能否一樣。用法為 strcmp(str1,str2),當兩個字符串一樣時前往,當兩個字符串一樣時前往1,否那,否那么前往么前往0。當所比較的兩個字符串是單元字符數組時,。當所比較的兩個字符串是單元字符數組時,前往值為一個列向量,元素為相應行比較的結果。前往值為一個列向量,元素為相應行比較的結果。lstrncmp:用于比較兩個字符串的前面幾個字符能否一:用于比較兩個字符串的前面幾個字符能否一樣。用法為樣。用法為 str

7、ncmp(str1,str2,n), 當字符串的前當字符串的前 n 個個字符一樣時前往字符一樣時前往1,否那么前往,否那么前往 0。當所比較的兩個字。當所比較的兩個字符串時單元數組時,前往值為列向量,元素為相應行比符串時單元數組時,前往值為列向量,元素為相應行比較的結果。較的結果。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的比較字符串的比較l除了利用上面兩個函數進展比較之外,還可以經過簡單運算比較兩個字符串。當兩個字符串擁有一樣的維數時,可以利用 MATLAB 運算法那么,對字符數組進展比較。字符數組的比較與數值數組的比較

8、根本一樣,不同之處在于字符數組比較時進展比較的是字符的 ASCII 碼值。進展比較前往的結果為一個數值向量,元素值為對應字符比較的結果。需求留意的是在利用這些運算比較字符串時,相互比較的兩個字符串必需有一樣數目的元素。符號符號意義英文簡寫=等于eq=不等于ne大于gt=大于等于ge第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的比較字符串的比較l除上面引見的兩個字符串之間的比較之外,除上面引見的兩個字符串之間的比較之外,MATLAB 還可以判別字符串中的字符能否為空還可以判別字符串中的字符能否為空格字符或者字母。實現這兩個功能

9、的函數分別為格字符或者字母。實現這兩個功能的函數分別為 isspace 和和isletter。lisspace:用法為:用法為 isspace(str),判別字符串,判別字符串 str 中的字符能否為空格,是空格字符那么前往中的字符能否為空格,是空格字符那么前往1,否那么前往否那么前往0。lisletter:用法為:用法為 isletter(str),判別字符串,判別字符串 str 中的字符能否為字母,是字母那么前往中的字符能否為字母,是字母那么前往1,否那,否那么前往么前往0。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串的

10、查找和交換字符串的查找和交換l查找與交換是字符串操作中的一項重要內容。用查找與交換是字符串操作中的一項重要內容。用于查找的函數主要有于查找的函數主要有 findstr,strmatch,strrep,strtok 等。下面一一引見這些函數。等。下面一一引見這些函數。lfindstr:用于在一個字符串中查找子字符串,前:用于在一個字符串中查找子字符串,前往子字符串出現的起始位置。用法為往子字符串出現的起始位置。用法為findstr(str1,str2),執(zhí)行時系統(tǒng)首先判別兩個字,執(zhí)行時系統(tǒng)首先判別兩個字符串的長短,然后在長的字符串中檢索短的子字符串的長短,然后在長的字符串中檢索短的子字符串。符串

11、。 lstrrep:查找字符串中的子字符串并將其交換為:查找字符串中的子字符串并將其交換為另一個子字符串。用法為另一個子字符串。用法為 str = strrep(str1, str2, str3),將,將 str1 中的一切子字符串中的一切子字符串 str2 交換為交換為 str3。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 strmatch:在字符數組的每一行中查找能否存在待:在字符數組的每一行中查找能否存在待查找的字符串,存在那么前往查找的字符串,存在那么前往1,否那么前往,否那么前往0。用。用法為法為strmatch(str

12、, STRS),查找,查找 str 中以中以 STRS 開開頭的字符串。另外可以用頭的字符串。另外可以用strmatch(str, STRS,exact),查找準確包含,查找準確包含 STRS 的字符串。的字符串。strtok:該函數用于選取字符串中的一個部分。該函:該函數用于選取字符串中的一個部分。該函數的簡單用法為數的簡單用法為 strtok(str)。字符串的匹配和交換字符串的匹配和交換第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串與數值之間的轉化字符串與數值之間的轉化 l一個字符串是由單引號括起來的簡單文本。在字一個字

13、符串是由單引號括起來的簡單文本。在字符串中的每個字符都是數組中的一個元素,這些符串中的每個字符都是數組中的一個元素,這些數字是由數字是由 ASCII 字符表示的。這些字符和整數字符表示的。這些字符和整數之間可以相互轉化。之間可以相互轉化。l首先,可以將字符串轉化為數組。首先,可以將字符串轉化為數組。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 字符串和數值數組之間的轉化字符串和數值數組之間的轉化lMTALAB 提供更多的函數,用于字符串和其他數據類型數值數組之間的轉化,可以實現更多功能。 函數功能備注uintN(如,uint8)將字

14、符串轉化為相應的無符號整數uint8(ab) 97 98str2num將字符型轉化為數字型str2num(123.56) 123.5600str2double與上一函數的功能相同,結果更精確一些,同時支持單元字符串數組double(123.56) 49 50 51 46 53 54。hex2num將十六進制數轉化為雙精度數hex2num(A) -1.4917e-154hex2dec將十六進制數基數轉化為正數hex2dec(B) 11bin2dec將二進制轉化為十進制bin2dec(1010) 10base2dec將 N 底數字字符串轉化為十進制base2dec(212,3) 23第第5章章 M

15、ATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 單元數組和構造體單元數組和構造體lMATLAB5后出現的,這兩種數據類型是將不同的相關數據集成到一個單一的變量中,使得大量的相關數據處置與援用變得簡單而方便。單元數組和構造體僅僅是承載其它數據的容器,所以普通的運算只針對其中的詳細數據進展。而不是對其本身。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 單元數組單元數組 l單元內容用單元內容用 括起來,里面可以是數值、字符串括起來,里面可以是數值、字符串等內容等內容l單元數組的生成單元數組的生

16、成l單元數組的操作單元數組的操作 l單元數組元素的訪問單元數組元素的訪問l單元數組的顯示單元數組的顯示l單元數組的圖形顯示單元數組的圖形顯示l單元數組元素的刪除單元數組元素的刪除l改動單元數組的維數改動單元數組的維數第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 單元數組的生成單元數組的生成l單元數組中的每一個元素稱為單元單元數組中的每一個元素稱為單元cell。單。單元中的數據可以為任何數據類型,包括數值數組、元中的數據可以為任何數據類型,包括數值數組、字符、符號對象、其他單元數組和構造體。不同字符、符號對象、其他單元數組和構造體。不

17、同的單元中的數據類型可以不同。的單元中的數據類型可以不同。MATLAB 中的中的單元數組可以為恣意維,通常最常用的是一維和單元數組可以為恣意維,通常最常用的是一維和二維單元數組。二維單元數組。l用戶可以經過兩種方式創(chuàng)建一個單元數組:用戶可以經過兩種方式創(chuàng)建一個單元數組:l一個是經過賦值語句直接創(chuàng)建;一個是經過賦值語句直接創(chuàng)建;l二是利用二是利用 cell 函數先為單元數組分配一個內存函數先為單元數組分配一個內存空間,然后再給各個單元賦值。空間,然后再給各個單元賦值。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 l直接賦值法經過給每個

18、單元逐個賦值來創(chuàng)建單元直接賦值法經過給每個單元逐個賦值來創(chuàng)建單元數組。單元數組用花括號表示,在賦值時需求將數組。單元數組用花括號表示,在賦值時需求將單元內容用花括號即單元內容用花括號即括起來。括起來。lA(1,1)=1 2 3;3 4 5;4 5 6l用用 cell 函數創(chuàng)建單元數組。運用函數創(chuàng)建單元數組。運用 cell 函數創(chuàng)建函數創(chuàng)建單元數組的步驟為:首先用單元數組的步驟為:首先用 cell 函數創(chuàng)建一個函數創(chuàng)建一個空的單元數組,然后再為數組元素賦值空的單元數組,然后再為數組元素賦值lCell(2,3),創(chuàng)建,創(chuàng)建23的空單元數組。的空單元數組。單元數組的生成單元數組的生成第第5章章 MA

19、TLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 單元數組元素的訪問單元數組元素的訪問 l運用圓括號和花括號對單元數組索引是不同的。運用圓括號和花括號對單元數組索引是不同的。當采用圓括號時表示的是該單元,而采用花括號當采用圓括號時表示的是該單元,而采用花括號時那么表示的是該單元的內容。在時那么表示的是該單元的內容。在 MATLAB 單單元數組索引中,圓括號用于標志單元、花括號用元數組索引中,圓括號用于標志單元、花括號用于按單元的尋址。于按單元的尋址。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構

20、體 顯示單元數組顯示單元數組l在顯示單元數組時在顯示單元數組時 MATLAB 有時只顯示單元的有時只顯示單元的大小和數據類型,而不顯示每個單元的詳細內容。大小和數據類型,而不顯示每個單元的詳細內容。假設要顯示單元數組的內容,可以用假設要顯示單元數組的內容,可以用 celldisp 函數。函數。lcelldisp 函數用于顯示單元數組的全部內容,有函數用于顯示單元數組的全部內容,有時候只需求顯示單元數組的一個單元,可以用花時候只需求顯示單元數組的一個單元,可以用花括號對單元進展索引。括號對單元進展索引。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元

21、數組和結構體 單元數組的圖形顯示單元數組的圖形顯示 l除上面的單元數組查看方式外,除上面的單元數組查看方式外,MATLAB 支持支持以圖形方式查看單元數組的內容。用這種方法可以圖形方式查看單元數組的內容。用這種方法可以直觀的看出單元數組的構造。但是需求留意的以直觀的看出單元數組的構造。但是需求留意的是,是,cellplot 只能用于顯示二維單元數組的內容。只能用于顯示二維單元數組的內容。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 單元數組元素的刪除單元數組元素的刪除 l單元數組元素刪除的方法很簡單,只需將待刪除的元素單元數組元素刪

22、除的方法很簡單,只需將待刪除的元素置為置為“空即可。需求留意的是在刪除單元數組的元素空即可。需求留意的是在刪除單元數組的元素時,采用的索引方式為一維下標,格式為:時,采用的索引方式為一維下標,格式為:lA(cell_subscripts) = 。l假設操作的單元數組為多維數組,那么其索引方式逐維假設操作的單元數組為多維數組,那么其索引方式逐維進展,刪除元素后,系統(tǒng)將該單元數組改動為一維單元進展,刪除元素后,系統(tǒng)將該單元數組改動為一維單元數組,元素按照維數逐次排序。數組,元素按照維數逐次排序。l刪除數組元素可以每次刪除多個,下標用一維數組指定刪除數組元素可以每次刪除多個,下標用一維數組指定第第5

23、章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 改動單元數組的維數改動單元數組的維數 l改動數組的維數可以經過添加或刪除數組元素完改動數組的維數可以經過添加或刪除數組元素完成。刪除數組元素時,得到的單元數組為原數組成。刪除數組元素時,得到的單元數組為原數組中剩下元素陳列而成,為一維數組,如上面一部中剩下元素陳列而成,為一維數組,如上面一部分所引見。添加數組元素時,自動添加該數組所分所引見。添加數組元素時,自動添加該數組所對應的行和列,其他元素為空。對應的行和列,其他元素為空。l另外可以經過函數另外可以經過函數 reshape 改動數組的外形

24、。改動數組的外形。reshape 函數按照順序將原單元數組的元素進展函數按照順序將原單元數組的元素進展重新放置,得到新的單元數組元素個數與原數組重新放置,得到新的單元數組元素個數與原數組一樣。一樣。第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 構造體構造體 l構造體的生成構造體的生成 l構造體的操作構造體的操作 l添加成員變量添加成員變量l刪除成員變量刪除成員變量l調用成員變量調用成員變量第第5章章 MATLAB 的數學運算的數學運算第第5章章 字符串、單元數組和結構體字符串、單元數組和結構體 構造體的生成構造體的生成l與單元數組類似,構造體也有兩種生成方式,一種是直與單元數組類似,構造體也有兩種生成方式,一種是直接輸入,另一種是運用構造體生成函數接輸入,另一種是運用構造體生成函數 struct。l經過直接輸入構造體各元素值的方法可以創(chuàng)建一個構造經過直接輸入構造體各元素值的方法可以創(chuàng)建一個構造體。輸入的同時定義該元素的稱號,并運用體。輸入的同時定義該元素的稱號,并運用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論