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

下載本文檔

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

文檔簡介

1、字符串單元數(shù)組和結構體教學內容l掌握字符串的生成及操作掌握字符串的生成及操作l掌握單元數(shù)組的生成及操作掌握單元數(shù)組的生成及操作l掌握結構體的生成及操作掌握結構體的生成及操作字符串的生成字符串的生成l字符串的生成字符串的生成 lMATLAB 中的字符串為中的字符串為 ASCII 值的數(shù)值數(shù)組,值的數(shù)值數(shù)組,作為字符串表達式進行表示。在作為字符串表達式進行表示。在 MATLAB 中,中,生成字符串的方法為生成字符串的方法為 stringname=the content of the string。字符串的生成字符串的生成l字符串是一個字符串是一個 ASCII 碼的字符數(shù)組,因此,與碼的字符數(shù)組,因

2、此,與普通數(shù)組一樣,字符串也可以形成矩陣(表現(xiàn)為普通數(shù)組一樣,字符串也可以形成矩陣(表現(xiàn)為一個字符串有多行)。但是,這些行必須有相同一個字符串有多行)。但是,這些行必須有相同數(shù)目的列數(shù)。數(shù)目的列數(shù)。l另外,使用另外,使用 char 函數(shù)可以創(chuàng)建長度不一致的字函數(shù)可以創(chuàng)建長度不一致的字符串矩陣。符串矩陣。char 函數(shù)自動將所有字符串的長度函數(shù)自動將所有字符串的長度設置為輸入字符串中長度的最大值。設置為輸入字符串中長度的最大值。字符串的操作字符串的操作 l字符串的顯示字符串的顯示字符串的顯示有兩種方式:直接顯示和利用字符串的顯示有兩種方式:直接顯示和利用 disp 函數(shù)進行顯示。函數(shù)進行顯示。l

3、字符串的執(zhí)行字符串的執(zhí)行在在 MATLAB 中可以用函數(shù)中可以用函數(shù) eval 來獲得字符串來獲得字符串的值。也叫求值函數(shù)的值。也叫求值函數(shù)字符串的運算字符串的運算l字符串的運算主要包括:字符串的運算主要包括:l 判斷字符串是否相等判斷字符串是否相等l 通過字符串運算來比較字符串中的字符通過字符串運算來比較字符串中的字符l 進行字符分類、查找與替換進行字符分類、查找與替換1. 字符串與數(shù)值數(shù)組之間的相互轉換字符串與數(shù)值數(shù)組之間的相互轉換 函數(shù)名函數(shù)用途函數(shù)名函數(shù)用途strcat橫向連接字符串strvcat縱向連接字符串strcmp字符串比較strncmp比較字符串的前n 個字符findstr字

4、符串查找strjust字符串對齊strmatch字符串匹配strrep字符串查找與替換strtok選擇字符串中的部分blanks創(chuàng)建由空格組成的字符串deblank刪除字符串結尾的空格ischar判斷變量是否為字符串iscellstr判斷字符串單元數(shù)組isletter判斷數(shù)組是否由字母組成isspace判斷是否空格stringsMATLAB 字符串句柄字符串的比較字符串的比較l字符串的比較主要為比較兩個字符串是否相同,字符串字符串的比較主要為比較兩個字符串是否相同,字符串中的子串是否相同和字符串中的個別字符是否相同。用中的子串是否相同和字符串中的個別字符是否相同。用于比較字符串的函數(shù)主要是于比

5、較字符串的函數(shù)主要是 strcmp 和和 strncmp。strcmp:用于比較兩個字符串是否相同。用法為:用于比較兩個字符串是否相同。用法為 strcmp(str1,str2),當兩個字符串相同時返回,當兩個字符串相同時返回1,否則返回,否則返回0。當所比較的兩個字符串是單元字符數(shù)組時,返回值為一個列當所比較的兩個字符串是單元字符數(shù)組時,返回值為一個列向量,元素為相應行比較的結果。向量,元素為相應行比較的結果。strncmp:用于比較兩個字符串的前面幾個字符是否相同。:用于比較兩個字符串的前面幾個字符是否相同。用法為用法為 strncmp(str1,str2,n), 當字符串的前當字符串的前

6、 n 個字符相同個字符相同時返回時返回1,否則返回,否則返回 0。當所比較的兩個字符串時單元數(shù)組時,。當所比較的兩個字符串時單元數(shù)組時,返回值為列向量,元素為相應行比較的結果。返回值為列向量,元素為相應行比較的結果。字符串的比較字符串的比較l除了利用上面兩個函數(shù)進行比較之外,還可以通過簡除了利用上面兩個函數(shù)進行比較之外,還可以通過簡單運算比較兩個字符串。當兩個字符串擁有相同的維單運算比較兩個字符串。當兩個字符串擁有相同的維數(shù)時,可以利用數(shù)時,可以利用 MATLAB 運算法則,對字符數(shù)組進行運算法則,對字符數(shù)組進行比較。字符數(shù)組的比較與數(shù)值數(shù)組的比較基本相同,比較。字符數(shù)組的比較與數(shù)值數(shù)組的比較

7、基本相同,不同之處在于字符數(shù)組比較時進行比較的是字符的不同之處在于字符數(shù)組比較時進行比較的是字符的 ASCII 碼值。進行比較返回的結果為一個數(shù)值向量,碼值。進行比較返回的結果為一個數(shù)值向量,元素值為對應字符比較的結果。需要注意的是在利用元素值為對應字符比較的結果。需要注意的是在利用這些運算比較字符串時,相互比較的兩個字符串必須這些運算比較字符串時,相互比較的兩個字符串必須有相同數(shù)目的元素。有相同數(shù)目的元素。符號符號意義英文簡寫=等于eq=不等于ne大于gt=大于等于ge字符串的比較字符串的比較l除上面介紹的兩個字符串之間的比較之外,除上面介紹的兩個字符串之間的比較之外,MATLAB 還可以判

8、斷字符串中的字符是否為空還可以判斷字符串中的字符是否為空格字符或者字母。實現(xiàn)這兩個功能的函數(shù)分別為格字符或者字母。實現(xiàn)這兩個功能的函數(shù)分別為 isspace 和和isletter。isspace:用法為:用法為 isspace(str),判斷字符串,判斷字符串 str 中中的字符是否為空格,是空格字符則返回的字符是否為空格,是空格字符則返回1,否則返回,否則返回0。isletter:用法為:用法為 isletter(str),判斷字符串,判斷字符串 str 中的中的字符是否為字母,是字母則返回字符是否為字母,是字母則返回1,否則返回,否則返回0。字符串的查找和替換字符串的查找和替換l查找與替換

9、是字符串操作中的一項重要內容。用查找與替換是字符串操作中的一項重要內容。用于查找的函數(shù)主要有于查找的函數(shù)主要有 findstr,strmatch,strrep,strtok 等。下面一一介紹這些函數(shù)。等。下面一一介紹這些函數(shù)。findstr:用于在一個字符串中查找子字符串,返回:用于在一個字符串中查找子字符串,返回子字符串出現(xiàn)的起始位置。用法為子字符串出現(xiàn)的起始位置。用法為findstr(str1,str2),執(zhí)行時系統(tǒng)首先判斷兩個字符串的長短,然后在長執(zhí)行時系統(tǒng)首先判斷兩個字符串的長短,然后在長的字符串中檢索短的子字符串。的字符串中檢索短的子字符串。 strrep:查找字符串中的子字符串并將

10、其替換為另一:查找字符串中的子字符串并將其替換為另一個子字符串。用法為個子字符串。用法為 str = strrep(str1, str2, str3),將將 str1 中的所有子字符串中的所有子字符串 str2 替換為替換為 str3。strmatch:在字符數(shù)組的每一行中查找是否存在待:在字符數(shù)組的每一行中查找是否存在待查找的字符串,存在則返回查找的字符串,存在則返回1,否則返回,否則返回0。用法為。用法為strmatch(str, STRS),查找,查找 str 中以中以 STRS 開頭的開頭的字符串。另外可以用字符串。另外可以用strmatch(str, STRS,exact),查找精確

11、包含查找精確包含 STRS 的字符串。的字符串。strtok:該函數(shù)用于選取字符串中的一個部分。該函:該函數(shù)用于選取字符串中的一個部分。該函數(shù)的簡單用法為數(shù)的簡單用法為 strtok(str)。字符串的匹配和替換字符串的匹配和替換字符串與數(shù)值之間的轉化字符串與數(shù)值之間的轉化 l一個字符串是由單引號括起來的簡單文本。在字一個字符串是由單引號括起來的簡單文本。在字符串中的每個字符都是數(shù)組中的一個元素,這些符串中的每個字符都是數(shù)組中的一個元素,這些數(shù)字是由數(shù)字是由 ASCII 字符表示的。這些字符和整數(shù)字符表示的。這些字符和整數(shù)之間可以相互轉化。之間可以相互轉化。l首先,可以將字符串轉化為數(shù)組。首先

12、,可以將字符串轉化為數(shù)組。字符串和數(shù)值數(shù)組之間的轉化字符串和數(shù)值數(shù)組之間的轉化lMTALAB 提供更多的函數(shù),用于字符串和其他數(shù)據(jù)類提供更多的函數(shù),用于字符串和其他數(shù)據(jù)類型數(shù)值數(shù)組之間的轉化,可以實現(xiàn)更多功能。型數(shù)值數(shù)組之間的轉化,可以實現(xiàn)更多功能。 函數(shù)功能備注uintN(如,uint8)將字符串轉化為相應的無符號整數(shù)uint8(ab) 97 98str2num將字符型轉化為數(shù)字型str2num(123.56) 123.5600str2double與上一函數(shù)的功能相同,結果更精確一些,同時支持單元字符串數(shù)組double(123.56) 49 50 51 46 53 54。hex2num將十六

13、進制數(shù)轉化為雙精度數(shù)hex2num(A) -1.4917e-154hex2dec將十六進制數(shù)基數(shù)轉化為正數(shù)hex2dec(B) 11bin2dec將二進制轉化為十進制bin2dec(1010) 10base2dec將 N 底數(shù)字字符串轉化為十進制base2dec(212,3) 23單元數(shù)組和結構體單元數(shù)組和結構體lMATLAB5后出現(xiàn)的,這兩種數(shù)據(jù)類型是將不同的相后出現(xiàn)的,這兩種數(shù)據(jù)類型是將不同的相關數(shù)據(jù)集成到一個單一的變量中,使得大量的相關關數(shù)據(jù)集成到一個單一的變量中,使得大量的相關數(shù)據(jù)處理與引用變得簡單而方便。單元數(shù)組和結構數(shù)據(jù)處理與引用變得簡單而方便。單元數(shù)組和結構體僅僅是承載其它數(shù)據(jù)的

14、容器,所以一般的運算只體僅僅是承載其它數(shù)據(jù)的容器,所以一般的運算只針對其中的具體數(shù)據(jù)進行。而不是對其本身。針對其中的具體數(shù)據(jù)進行。而不是對其本身。單元數(shù)組單元數(shù)組 l單元內容用單元內容用 括起來,里面可以是數(shù)值、字符串括起來,里面可以是數(shù)值、字符串等內容等內容l單元數(shù)組的生成單元數(shù)組的生成l單元數(shù)組的操作單元數(shù)組的操作 單元數(shù)組元素的訪問單元數(shù)組元素的訪問單元數(shù)組的顯示單元數(shù)組的顯示單元數(shù)組的圖形顯示單元數(shù)組的圖形顯示單元數(shù)組元素的刪除單元數(shù)組元素的刪除改變單元數(shù)組的維數(shù)改變單元數(shù)組的維數(shù)單元數(shù)組的生成單元數(shù)組的生成l單元數(shù)組中的每一個元素稱為單元(單元數(shù)組中的每一個元素稱為單元(cell)。

15、單)。單元中的數(shù)據(jù)可以為任何數(shù)據(jù)類型,包括數(shù)值數(shù)組、元中的數(shù)據(jù)可以為任何數(shù)據(jù)類型,包括數(shù)值數(shù)組、字符、符號對象、其他單元數(shù)組和結構體。不同字符、符號對象、其他單元數(shù)組和結構體。不同的單元中的數(shù)據(jù)類型可以不同。的單元中的數(shù)據(jù)類型可以不同。MATLAB 中的中的單元數(shù)組可以為任意維,通常最常用的是一維和單元數(shù)組可以為任意維,通常最常用的是一維和二維單元數(shù)組。二維單元數(shù)組。l用戶可以通過兩種方式創(chuàng)建一個單元數(shù)組:用戶可以通過兩種方式創(chuàng)建一個單元數(shù)組:一個是通過賦值語句直接創(chuàng)建;一個是通過賦值語句直接創(chuàng)建;二是利用二是利用 cell 函數(shù)先為單元數(shù)組分配一個內存空間,函數(shù)先為單元數(shù)組分配一個內存空間,

16、然后再給各個單元賦值。然后再給各個單元賦值。l直接賦值法通過給每個單元逐個賦值來創(chuàng)建單元直接賦值法通過給每個單元逐個賦值來創(chuàng)建單元數(shù)組。單元數(shù)組用花括號表示,在賦值時需要將數(shù)組。單元數(shù)組用花括號表示,在賦值時需要將單元內容用花括號(即單元內容用花括號(即)括起來。)括起來。lA(1,1)=1 2 3;3 4 5;4 5 6l用用 cell 函數(shù)創(chuàng)建單元數(shù)組。使用函數(shù)創(chuàng)建單元數(shù)組。使用 cell 函數(shù)創(chuàng)建函數(shù)創(chuàng)建單元數(shù)組的步驟為:首先用單元數(shù)組的步驟為:首先用 cell 函數(shù)創(chuàng)建一個函數(shù)創(chuàng)建一個空的單元數(shù)組,然后再為數(shù)組元素賦值空的單元數(shù)組,然后再為數(shù)組元素賦值lCell(2,3),創(chuàng)建,創(chuàng)建2

17、3的空單元數(shù)組。的空單元數(shù)組。單元數(shù)組的生成單元數(shù)組的生成單元數(shù)組元素的訪問單元數(shù)組元素的訪問 l使用圓括號和花括號對單元數(shù)組索引是不同的。使用圓括號和花括號對單元數(shù)組索引是不同的。當采用圓括號時表示的是該單元,而采用花括號當采用圓括號時表示的是該單元,而采用花括號時則表示的是該單元的內容。在時則表示的是該單元的內容。在 MATLAB 單元單元數(shù)組索引中,圓括號用于標志單元、花括號用于數(shù)組索引中,圓括號用于標志單元、花括號用于按單元的尋址。按單元的尋址。顯示單元數(shù)組顯示單元數(shù)組l在顯示單元數(shù)組時在顯示單元數(shù)組時 MATLAB 有時只顯示單元的有時只顯示單元的大小和數(shù)據(jù)類型,而不顯示每個單元的具

18、體內容。大小和數(shù)據(jù)類型,而不顯示每個單元的具體內容。若要顯示單元數(shù)組的內容,可以用若要顯示單元數(shù)組的內容,可以用 celldisp 函函數(shù)。數(shù)。lcelldisp 函數(shù)用于顯示單元數(shù)組的全部內容,有函數(shù)用于顯示單元數(shù)組的全部內容,有時候只需要顯示單元數(shù)組的一個單元,可以用花時候只需要顯示單元數(shù)組的一個單元,可以用花括號對單元進行索引。括號對單元進行索引。單元數(shù)組的圖形顯示單元數(shù)組的圖形顯示 l除上面的單元數(shù)組查看方式外,除上面的單元數(shù)組查看方式外,MATLAB 支持支持以圖形方式查看單元數(shù)組的內容。用這種方法可以圖形方式查看單元數(shù)組的內容。用這種方法可以直觀的看出單元數(shù)組的結構。但是需要注意的

19、以直觀的看出單元數(shù)組的結構。但是需要注意的是,是,cellplot 只能用于顯示二維單元數(shù)組的內容。只能用于顯示二維單元數(shù)組的內容。單元數(shù)組元素的刪除單元數(shù)組元素的刪除 l單元數(shù)組元素刪除的方法很簡單,只需將待刪除的元素單元數(shù)組元素刪除的方法很簡單,只需將待刪除的元素置為置為“空空”即可。需要注意的是在刪除單元數(shù)組的元素即可。需要注意的是在刪除單元數(shù)組的元素時,采用的索引方式為一維下標,格式為:時,采用的索引方式為一維下標,格式為:A(cell_subscripts) = 。l如果操作的單元數(shù)組為多維數(shù)組,則其索引方式逐維進如果操作的單元數(shù)組為多維數(shù)組,則其索引方式逐維進行,刪除元素后,系統(tǒng)將

20、該單元數(shù)組改變?yōu)橐痪S單元數(shù)行,刪除元素后,系統(tǒng)將該單元數(shù)組改變?yōu)橐痪S單元數(shù)組,元素按照維數(shù)逐次排序。組,元素按照維數(shù)逐次排序。l刪除數(shù)組元素可以每次刪除多個,下標用一維數(shù)組指定刪除數(shù)組元素可以每次刪除多個,下標用一維數(shù)組指定改變單元數(shù)組的維數(shù)改變單元數(shù)組的維數(shù) l改變數(shù)組的維數(shù)可以通過添加或刪除數(shù)組元素完改變數(shù)組的維數(shù)可以通過添加或刪除數(shù)組元素完成。刪除數(shù)組元素時,得到的單元數(shù)組為原數(shù)組成。刪除數(shù)組元素時,得到的單元數(shù)組為原數(shù)組中剩下元素排列而成,為一維數(shù)組,如上面一部中剩下元素排列而成,為一維數(shù)組,如上面一部分所介紹。添加數(shù)組元素時,自動添加該數(shù)組所分所介紹。添加數(shù)組元素時,自動添加該數(shù)組所

21、對應的行和列,其他元素為空。對應的行和列,其他元素為空。l另外可以通過函數(shù)另外可以通過函數(shù) reshape 改變數(shù)組的形狀。改變數(shù)組的形狀。reshape 函數(shù)按照順序將原單元數(shù)組的元素進行函數(shù)按照順序將原單元數(shù)組的元素進行重新放置,得到新的單元數(shù)組元素個數(shù)與原數(shù)組重新放置,得到新的單元數(shù)組元素個數(shù)與原數(shù)組相同。相同。結構體結構體 l結構體的生成結構體的生成 l結構體的操作結構體的操作 添加成員變量添加成員變量刪除成員變量刪除成員變量調用成員變量調用成員變量結構體的生成結構體的生成l與單元數(shù)組類似,結構體也有兩種生成方式,一種是直與單元數(shù)組類似,結構體也有兩種生成方式,一種是直接輸入,另一種是使用結構體生成函數(shù)接輸入,另一種是使用結構體生成函數(shù) struct。l通過直接輸入結構體各元素值的方法可以創(chuàng)建一個結構通過直接輸入結構體各元素值

溫馨提示

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

評論

0/150

提交評論