




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章字符串、單元數組和結構體MATLABR2007基礎教程清華大學出版社教學目標教學重點教學內容1/4/20231第6章字符串、單元數組和結構體MATLABR2007基礎教學目標掌握字符串的生成及操作掌握單元數組的生成及操作掌握結構體的生成及操作1/4/20232教學目標掌握字符串的生成及操作12/18/20222教學重點字符串單元數組結構體1/4/20233教學重點字符串12/18/20223教學內容字符串單元數組結構體1/4/20234教學內容字符串12/18/20224字符串的生成(1/2)字符串的生成MATLAB中的字符串為ASCII值的數值數組,作為字符串表達式進行表示。在MATLAB中,生成字符串的方法為stringname=’thecontentofthestring’。1/4/20235字符串的生成(1/2)字符串的生成12/18/20225字符串的生成(2/2)字符串是一個ASCII碼的字符數組,因此,與普通數組一樣,字符串也可以形成矩陣(表現為一個字符串有多行)。但是,這些行必須有相同數目的列數。另外,使用char函數可以創建長度不一致的字符串矩陣。char函數自動將所有字符串的長度設置為輸入字符串中長度的最大值。1/4/20236字符串的生成(2/2)字符串是一個ASCII碼的字符數字符串的操作字符串的顯示 字符串的顯示有兩種方式:直接顯示和利用disp函數進行顯示。字符串的執行 在MATLAB中可以用函數eval來執行字符串。1/4/20237字符串的操作字符串的顯示12/18/20227字符串的運算字符串的運算主要包括:判斷字符串是否相等通過字符串運算來比較字符串中的字符進行字符分類、查找與替換字符串與數值數組之間的相互轉換函數名函數用途函數名函數用途strcat橫向連接字符串strvcat縱向連接字符串strcmp字符串比較strncmp比較字符串的前n個字符findstr字符串查找strjust字符串對齊strmatch字符串匹配strrep字符串查找與替換strtok選擇字符串中的部分blanks創建由空格組成的字符串deblank刪除字符串結尾的空格ischar判斷變量是否為字符串iscellstr判斷字符串單元數組isletter判斷數組是否由字母組成isspace判斷是否空格stringsMATLAB字符串句柄1/4/20238字符串的運算字符串的運算主要包括:函數名函數用途函數名函數用字符串的比較(1/3)字符串的比較主要為比較兩個字符串是否相同,字符串中的子串是否相同和字符串中的個別字符是否相同。用于比較字符串的函數主要是strcmp和strncmp。strcmp:用于比較兩個字符串是否相同。用法為strcmp(str1,str2),當兩個字符串相同時返回1,否則返回0。當所比較的兩個字符串是單元字符數組時,返回值為一個列向量,元素為相應行比較的結果。strncmp:用于比較兩個字符串的前面幾個字符是否相同。用法為strncmp(str1,str2,n),當字符串的前n個字符相同時返回1,否則返回0。當所比較的兩個字符串時單元數組時,返回值為列向量,元素為相應行比較的結果。1/4/20239字符串的比較(1/3)字符串的比較主要為比較兩個字符串是否相字符串的比較(2/3)除了利用上面兩個函數進行比較之外,還可以通過簡單運算比較兩個字符串。當兩個字符串擁有相同的維數時,可以利用MATLAB運算法則,對字符數組進行比較。字符數組的比較與數值數組的比較基本相同,不同之處在于字符數組比較時進行比較的是字符的ASCII碼值。進行比較返回的結果為一個數值向量,元素為對應字符比較的結果。需要注意的是在利用這些運算比較字符串時,相互比較的兩個字符串必須有相同數目的元素。符號符號意義英文簡寫==等于eq~=不等于ne<小于lt>大于gt<=小于等于le>=大于等于ge1/4/202310字符串的比較(2/3)除了利用上面兩個函數進行比較之外,還可字符串的比較(3/3)除上面介紹的兩個字符串之間的比較之外,MATLAB還可以判斷字符串中的字符是否為空格字符或者字母。實現這兩個功能的函數分別為isspace和isletter。下面分別介紹這兩個函數。isspace:用法為isspace(str),判斷字符串str中的字符是否為空格,是空格字符則返回1,否則返回0。isletter:用法為isletter(str),判斷字符串str中的字符是否為字母,是字母則返回1,否則返回0。1/4/202311字符串的比較(3/3)除上面介紹的兩個字符串之間的比較之外,字符串的查找和替換查找與替換是字符串操作中的一項重要內容。用于查找的函數主要有findstr,strmatch,strrep,strtok等。下面一一介紹這些函數。findstr:用于在一個字符串中查找子字符串,返回子字符串出現的起始位置。用法為findstr(str1,str2),執行時系統首先判斷兩個字符串的長短,然后在長的字符串中檢索短的子字符串。strrep:查找字符串中的子字符串并將其替換為另一個子字符串。用法為str=strrep(str1,str2,str3),將str1中的所有子字符串str2替換為str3。1/4/202312字符串的查找和替換查找與替換是字符串操作中的一項重要內容。用strmatch:在字符數組的每一行中查找是否存在待查找的字符串,存在則返回1,否則返回0。用法為strmatch('str',STRS),查找str中以STRS開頭的字符串。另外可以用strmatch('str',STRS,’exact’),查找精確包含STRS的字符串。strtok:該函數用于選取字符串中的一個部分。該函數的簡單用法為strtok(str)。1/4/202313strmatch:在字符數組的每一行中查找是否存在待查找的字字符串與數值之間的轉化一個字符串是由單引號括起來的簡單文本。在字符串中的每個字符都是數組中的一個元素,這些數字是由ASCII字符表示的。這些字符和整數之間可以相互轉化。首先,可以將字符串轉化為數組。1/4/202314字符串與數值之間的轉化一個字符串是由單引號括起來的簡單文本char函數的用法char函數的用法Str=char(arr),該命令將包含正數的數組arr轉化為數值數組 當C是一個字符型單元數組是,Str=char(arr)命令將C中的每一個單元轉化為字符型數組的對應行。使用cellstr可以進行逆變換。Str=char(str1,str2,str3,...),該命令生成的字符串矩陣包含字符串str1、str2和tr3,三個字符串的長度可以不相同。1/4/202315char函數的用法char函數的用法12/18/202字符串和數值數組之間的轉化上面已經介紹字符串和數值數組之間可以相互轉化,除上面介紹的方法,MTALAB還提供更多的函數,用于字符串和其他數據類型數值數組之間的轉化,可以實現更多功能。函數功能備注uintN(如,uint8)將字符串轉化為相應的無符號整數uint8('ab')→9798str2num將字符型轉化為數字型str2num('123.56')→123.5600str2double與上一函數的功能相同,結果更精確一些,同時支持單元字符串數組double('123.56')→495051465354。hex2num將十六進制數轉化為雙精度數hex2num('A')→-1.4917e-154hex2dec將十六進制數基數轉化為正數hex2dec('B')→11bin2dec將二進制轉化為十進制bin2dec('1010')→10base2dec將N底數字字符串轉化為十進制base2dec('212',3)→231/4/202316字符串和數值數組之間的轉化上面已經介紹字符串和數值數組之間可單元數組單元數組的生成單元數組的操作單元數組元素的訪問單元數組的顯示單元數組的圖形顯示單元數組元素的刪除改變單元數組的維數1/4/202317單元數組單元數組的生成12/18/202217單元數組的生成單元數組中的每一個元素稱為單元(cell)。單元中的數據可以為任何數據類型,包括數值數組、字符、符號對象、其他單元數組和結構體。不同的單元中的數據類型可以不同。MATLAB中的單元數組可以為任意維,通常最常用的是一維和二維單元數組。用戶可以通過兩種方式創建一個單元數組:一個是通過賦值語句直接創建;二是利用cell函數先為單元數組分配一個內存空間,然后再給各個單元賦值。1/4/202318單元數組的生成單元數組中的每一個元素稱為單元(cell)。單直接賦值法通過給每個單元逐個賦值來創建單元數組。單元數組用花括號表示,在賦值時需要將單元內容用花括號(即{})括起來。下面介紹用cell函數創建單元數組。使用cell函數創建單元數組的步驟為:首先用cell函數創建一個空的單元數組,然后再為數組元素賦值。1/4/202319直接賦值法通過給每個單元逐個賦值來創建單元數組。單元數組用花單元數組元素的訪問使用圓括號和花括號對單元數組索引是不同的。當采用圓括號時表示的是該單元,而采用花括號時則表示的是該單元的內容。在MATLAB單元數組索引中,圓括號用于標志單元、花括號用于按單元的尋址。1/4/202320單元數組元素的訪問使用圓括號和花括號對單元數組索引是不同的顯示單元數組在顯示單元數組時MATLAB有時只顯示單元的大小和數據類型,而不顯示每個單元的具體內容。若要顯示單元數組的內容,可以用celldisp函數。celldisp函數用于顯示單元數組的全部內容,有時候只需要顯示單元數組的一個單元,可以用花括號對單元進行索引。1/4/202321顯示單元數組在顯示單元數組時MATLAB有時只顯示單元的單元數組的圖形顯示除上面的單元數組查看方式外,MATLAB支持以圖形方式查看單元數組的內容。用這種方法可以直觀的看出單元數組的結構。但是需要注意的是,cellplot只能用于顯示二維單元數組的內容。1/4/202322單元數組的圖形顯示除上面的單元數組查看方式外,MATLAB單元數組元素的刪除單元數組元素刪除的方法很簡單,只需將待刪除的元素置為“空”即可。需要注意的是在刪除單元數組的元素時,采用的索引方式為一維下標,格式為:A(cell_subscripts)=[]。如果操作的單元數組為多維數組,則其索引方式逐維進行,刪除元素后,系統將該單元數組改變為一維單元數組,元素按照維數逐次排序。刪除數組元素可以每次刪除多個,下標用一維數組指定1/4/202323單元數組元素的刪除單元數組元素刪除的方法很簡單,只需將待刪改變單元數組的維數改變數組的維數可以通過添加或刪除數組元素完成。刪除數組元素時,得到的單元數組為原數組中剩下元素排列而成,為一維數組,如上面一部分所介紹。添加數組元素時,自動添加該數組所對應的行和列,其他元素為空。另外可以通過函數reshape改變數組的形狀。reshape函數按照順序將原單元數組的元素進行重新放置,得到新的單元數組元素個數與原數組相同。1/4/202324改變單元數組的維數改變數組的維數可以通過添加或刪除數組元素結構體結構體的生成結構體的操作添加成員變量刪除成員變量調用成員變量1/4/202325結構體結構體的生成12/18/202225結構體的生成與單元數組類似,結構體也有兩種生成方式,一種是直接輸入,另一種是使用結構體生成函數struct。通過直接輸入結構體各元素值的方法可以創建一個結構體。輸入的同時定義該元素的名稱,并使用“.”將變量名與元素名連接。struct函數的最基本的使用方式是struct_name=struct('field1',V1,'field2',V2,...),其中fieldn是各成員變量名,Vn為對應的各成員變量的內容。1/4/202326結構體的生成與單元數組類似,結構體也有兩種生成方式,一種是直添加成員變量如果需要向結構體中添加新的成員,可以直接輸入該變量的名稱并賦值。1/4/202327添加成員變量如果需要向結構體中添加新的成員,可以直接輸入該刪除成員變量在MATLAB中可以使用函數rmfield從結構體中刪除成員變量。命令S=rmfield(S,’field’)將刪除結構體S中的成員field,同時保留S原有的結構。可以使用命令S=rmfield(S,fields)一次刪除多個成員,其中fields為字符行變量或者單元型變量。該命令刪除fields中指定的成員。1/4/202328刪除成員變量在MATLAB中可以使用函數rmfiel調用成員變量在MATLAB中調用成員變量非常簡單。結構體中的任何信息,可以通過“結構體變量名.成員名”的方式調用。調出成員變量后,可以利用相關函數進行調用。1/4/202329調用成員變量在MATLAB中調用成員變量非常簡單。結構第6章字符串、單元數組和結構體MATLABR2007基礎教程清華大學出版社教學目標教學重點教學內容1/4/202330第6章字符串、單元數組和結構體MATLABR2007基礎教學目標掌握字符串的生成及操作掌握單元數組的生成及操作掌握結構體的生成及操作1/4/202331教學目標掌握字符串的生成及操作12/18/20222教學重點字符串單元數組結構體1/4/202332教學重點字符串12/18/20223教學內容字符串單元數組結構體1/4/202333教學內容字符串12/18/20224字符串的生成(1/2)字符串的生成MATLAB中的字符串為ASCII值的數值數組,作為字符串表達式進行表示。在MATLAB中,生成字符串的方法為stringname=’thecontentofthestring’。1/4/202334字符串的生成(1/2)字符串的生成12/18/20225字符串的生成(2/2)字符串是一個ASCII碼的字符數組,因此,與普通數組一樣,字符串也可以形成矩陣(表現為一個字符串有多行)。但是,這些行必須有相同數目的列數。另外,使用char函數可以創建長度不一致的字符串矩陣。char函數自動將所有字符串的長度設置為輸入字符串中長度的最大值。1/4/202335字符串的生成(2/2)字符串是一個ASCII碼的字符數字符串的操作字符串的顯示 字符串的顯示有兩種方式:直接顯示和利用disp函數進行顯示。字符串的執行 在MATLAB中可以用函數eval來執行字符串。1/4/202336字符串的操作字符串的顯示12/18/20227字符串的運算字符串的運算主要包括:判斷字符串是否相等通過字符串運算來比較字符串中的字符進行字符分類、查找與替換字符串與數值數組之間的相互轉換函數名函數用途函數名函數用途strcat橫向連接字符串strvcat縱向連接字符串strcmp字符串比較strncmp比較字符串的前n個字符findstr字符串查找strjust字符串對齊strmatch字符串匹配strrep字符串查找與替換strtok選擇字符串中的部分blanks創建由空格組成的字符串deblank刪除字符串結尾的空格ischar判斷變量是否為字符串iscellstr判斷字符串單元數組isletter判斷數組是否由字母組成isspace判斷是否空格stringsMATLAB字符串句柄1/4/202337字符串的運算字符串的運算主要包括:函數名函數用途函數名函數用字符串的比較(1/3)字符串的比較主要為比較兩個字符串是否相同,字符串中的子串是否相同和字符串中的個別字符是否相同。用于比較字符串的函數主要是strcmp和strncmp。strcmp:用于比較兩個字符串是否相同。用法為strcmp(str1,str2),當兩個字符串相同時返回1,否則返回0。當所比較的兩個字符串是單元字符數組時,返回值為一個列向量,元素為相應行比較的結果。strncmp:用于比較兩個字符串的前面幾個字符是否相同。用法為strncmp(str1,str2,n),當字符串的前n個字符相同時返回1,否則返回0。當所比較的兩個字符串時單元數組時,返回值為列向量,元素為相應行比較的結果。1/4/202338字符串的比較(1/3)字符串的比較主要為比較兩個字符串是否相字符串的比較(2/3)除了利用上面兩個函數進行比較之外,還可以通過簡單運算比較兩個字符串。當兩個字符串擁有相同的維數時,可以利用MATLAB運算法則,對字符數組進行比較。字符數組的比較與數值數組的比較基本相同,不同之處在于字符數組比較時進行比較的是字符的ASCII碼值。進行比較返回的結果為一個數值向量,元素為對應字符比較的結果。需要注意的是在利用這些運算比較字符串時,相互比較的兩個字符串必須有相同數目的元素。符號符號意義英文簡寫==等于eq~=不等于ne<小于lt>大于gt<=小于等于le>=大于等于ge1/4/202339字符串的比較(2/3)除了利用上面兩個函數進行比較之外,還可字符串的比較(3/3)除上面介紹的兩個字符串之間的比較之外,MATLAB還可以判斷字符串中的字符是否為空格字符或者字母。實現這兩個功能的函數分別為isspace和isletter。下面分別介紹這兩個函數。isspace:用法為isspace(str),判斷字符串str中的字符是否為空格,是空格字符則返回1,否則返回0。isletter:用法為isletter(str),判斷字符串str中的字符是否為字母,是字母則返回1,否則返回0。1/4/202340字符串的比較(3/3)除上面介紹的兩個字符串之間的比較之外,字符串的查找和替換查找與替換是字符串操作中的一項重要內容。用于查找的函數主要有findstr,strmatch,strrep,strtok等。下面一一介紹這些函數。findstr:用于在一個字符串中查找子字符串,返回子字符串出現的起始位置。用法為findstr(str1,str2),執行時系統首先判斷兩個字符串的長短,然后在長的字符串中檢索短的子字符串。strrep:查找字符串中的子字符串并將其替換為另一個子字符串。用法為str=strrep(str1,str2,str3),將str1中的所有子字符串str2替換為str3。1/4/202341字符串的查找和替換查找與替換是字符串操作中的一項重要內容。用strmatch:在字符數組的每一行中查找是否存在待查找的字符串,存在則返回1,否則返回0。用法為strmatch('str',STRS),查找str中以STRS開頭的字符串。另外可以用strmatch('str',STRS,’exact’),查找精確包含STRS的字符串。strtok:該函數用于選取字符串中的一個部分。該函數的簡單用法為strtok(str)。1/4/202342strmatch:在字符數組的每一行中查找是否存在待查找的字字符串與數值之間的轉化一個字符串是由單引號括起來的簡單文本。在字符串中的每個字符都是數組中的一個元素,這些數字是由ASCII字符表示的。這些字符和整數之間可以相互轉化。首先,可以將字符串轉化為數組。1/4/202343字符串與數值之間的轉化一個字符串是由單引號括起來的簡單文本char函數的用法char函數的用法Str=char(arr),該命令將包含正數的數組arr轉化為數值數組 當C是一個字符型單元數組是,Str=char(arr)命令將C中的每一個單元轉化為字符型數組的對應行。使用cellstr可以進行逆變換。Str=char(str1,str2,str3,...),該命令生成的字符串矩陣包含字符串str1、str2和tr3,三個字符串的長度可以不相同。1/4/202344char函數的用法char函數的用法12/18/202字符串和數值數組之間的轉化上面已經介紹字符串和數值數組之間可以相互轉化,除上面介紹的方法,MTALAB還提供更多的函數,用于字符串和其他數據類型數值數組之間的轉化,可以實現更多功能。函數功能備注uintN(如,uint8)將字符串轉化為相應的無符號整數uint8('ab')→9798str2num將字符型轉化為數字型str2num('123.56')→123.5600str2double與上一函數的功能相同,結果更精確一些,同時支持單元字符串數組double('123.56')→495051465354。hex2num將十六進制數轉化為雙精度數hex2num('A')→-1.4917e-154hex2dec將十六進制數基數轉化為正數hex2dec('B')→11bin2dec將二進制轉化為十進制bin2dec('1010')→10base2dec將N底數字字符串轉化為十進制base2dec('212',3)→231/4/202345字符串和數值數組之間的轉化上面已經介紹字符串和數值數組之間可單元數組單元數組的生成單元數組的操作單元數組元素的訪問單元數組的顯示單元數組的圖形顯示單元數組元素的刪除改變單元數組的維數1/4/202346單元數組單元數組的生成12/18/202217單元數組的生成單元數組中的每一個元素稱為單元(cell)。單元中的數據可以為任何數據類型,包括數值數組、字符、符號對象、其他單元數組和結構體。不同的單元中的數據類型可以不同。MATLAB中的單元數組可以為任意維,通常最常用的是一維和二維單元數組。用戶可以通過兩種方式創建一個單元數組:一個是通過賦值語句直接創建;二是利用cell函數先為單元數組分配一個內存空間,然后再給各個單元賦值。1/4/202347單元數組的生成單元數組中的每一個元素稱為單元(cell)。單直接賦值法通過給每個單元逐個賦值來創建單元數組。單元數組用花括號表示,在賦值時需要將單元內容用花括號(即{})括起來。下面介紹用cell函數創建單元數組。使用cell函數創建單元數組的步驟為:首先用cell函數創建一個空的單元數組,然后再為數組元素賦值。1/4/202348直接賦值法通過給每個單元逐個賦值來創建單元數組。單元數組用花單元數組元素的訪問使用圓括號和花括號對單元數組索引是不同的。當采用圓括號時表示的是該單元,而采用花括號時則表示的是該單元的內容。在MATLAB單元數組索引中,圓括號用于標志單元、花括號用于按單元的尋址。1/4/202349單元數組元素的訪問使用圓括號和花括號對單元數組索引是不同的顯示單元數組在顯示單元數組時MATLAB有時只顯示單元的大小和數據類型,而不顯示每個單元的具體內容。若要顯示單元數組的內容,可以用celldisp函數。celldisp函數用于顯示單元數組的全部內容,有時候只需要顯示單元數組的一個單元,可以用花括號對單元進行索引。1/4/202350顯示單元數組在顯示單元數組時MATLAB有時只顯示單元的單元數組的圖形顯示除上面的單元數組查看方式外,MATLAB支持以圖形方式查看單元數組的內容。用這種方法可以直觀的看出單元數組的結構。但是需要注意的是,cellplot只能用于顯示二維單元數組的內容。1/4/202351單元數組的圖形顯示除上面的單元數組查看方式外,MATLAB單元數組元素的刪除單元數組元素刪除的方法很簡單,只需將待刪除的元素置為“空”即可。需要注意的是在刪除單元數組的元素
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年補償貿易簡單借款合同范本
- 2025【管理】OAZ-CN商品房買賣合同糾紛中的幾個問題
- 2025上海市房屋租賃合同范本
- 2025年土地承包合同終止協議
- 2025蘇州市吳江區購房合同
- 商務洽談合同協議模板
- 呼叫中心合同協議
- 商場一卡通會員合同協議
- 比亞迪銷售合同補充協議
- 2025年前臺行政人員勞動合同書范本
- 相關方的需求和期望清單
- 北京版二年級下冊混合運算練習200題及答案
- 中國人權報告
- 嬰童服飾行業分析
- 2020-2021學年小學道德與法治名師工作室工作計劃
- HELLP綜合征(中文)課件
- 【試卷】-《新能源汽車整車控制系統檢修》課程考試試卷(閉卷)A卷
- 機電技術應用專業群教學模式改革典型案例
- 鉆341 18號 陜西旅游版五年級英語上冊 unit 6 How much is it 單元綜合作業設計 3000字 版面設計
- 大型會展中心管理及運營模式研究-以大虹橋國家會展中心為例
- 《中國藥典》中藥質量標準研究制定技術要求
評論
0/150
提交評論