字符串?dāng)?shù)組、元胞數(shù)組和構(gòu)架數(shù)組.ppt_第1頁(yè)
字符串?dāng)?shù)組、元胞數(shù)組和構(gòu)架數(shù)組.ppt_第2頁(yè)
字符串?dāng)?shù)組、元胞數(shù)組和構(gòu)架數(shù)組.ppt_第3頁(yè)
字符串?dāng)?shù)組、元胞數(shù)組和構(gòu)架數(shù)組.ppt_第4頁(yè)
字符串?dāng)?shù)組、元胞數(shù)組和構(gòu)架數(shù)組.ppt_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余28頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、1,字符串?dāng)?shù)組(Character String Array),字符串?dāng)?shù)組的屬性和標(biāo)識(shí),復(fù)雜字符串?dāng)?shù)組的創(chuàng)建,串轉(zhuǎn)換函數(shù)和串操作函數(shù),元胞數(shù)組 (Cell Array),元胞數(shù)組的創(chuàng)建,元胞數(shù)組的內(nèi)容顯示,元胞數(shù)組的內(nèi)容獲取,元胞數(shù)組的擴(kuò)充、收縮和重組,構(gòu)架數(shù)組(Structure Array),構(gòu)架數(shù)組的創(chuàng)建,構(gòu)架數(shù)組數(shù)據(jù)的獲取和設(shè)置,構(gòu)架數(shù)組域的獲取,數(shù)據(jù)類型歸納,三、字符串元胞構(gòu)架數(shù)組,2,3.1 字符串?dāng)?shù)組(Character String Array),【例31】字符串入門,String1=b; String2=This is an example!;% 英文字母、空格、數(shù)字、標(biāo)點(diǎn)、

2、中文字符 String3=例子char array;%都是占一個(gè)元素位,兩個(gè)字節(jié) s1=class(String1) s1 = char,s2=size(String2) s2 = 1 19, whos Name Size Bytes Class String1 1x1 2 char array String2 1x19 38 char array String3 1x14 28 char array s1 1x4 8 char array s2 1x2 16 double array Grand total is 40 elements using 92 bytes,在MATLAB中,字符串

3、是作為字符數(shù)組來(lái)引入的; 一個(gè)字符串由多個(gè)字符組成,用單引號(hào)()來(lái)界定; 字符串是按行向量進(jìn)行存儲(chǔ)的,每一字符(包括空格)是以其ASCII碼的形式存放.。,3,3.1.1 字符串?dāng)?shù)組的屬性和標(biāo)識(shí),1. 創(chuàng)建串?dāng)?shù)組,必須將待建字符放在“單引號(hào)對(duì)”中,當(dāng)串中本身包含單引號(hào)時(shí),每個(gè)單引號(hào)符用“連續(xù)的兩個(gè)單引號(hào)”表示。,2. 串?dāng)?shù)組的大小,size指令可獲得串?dāng)?shù)組的大小。串中的每一個(gè)字符,包括中英文字符、空格、標(biāo)點(diǎn)都算一個(gè)元素。,3. 串?dāng)?shù)組的元素標(biāo)識(shí),按從左至右的順序依次用1、2、3、4等標(biāo)識(shí)元素在串中的位置。,4. 串?dāng)?shù)組的ASCII碼,指令abs和double可以顯示串?dāng)?shù)組對(duì)應(yīng)的ASCII碼數(shù)值

4、數(shù)組,指令char則可把ASCII碼數(shù)值數(shù)組轉(zhuǎn)換成串?dāng)?shù)組。,5. 字符串ASCII碼數(shù)組的操作,可以對(duì)ASCII碼數(shù)組進(jìn)行數(shù)值數(shù)組的各種運(yùn)算。但其結(jié)果就變成一般數(shù)值向量的運(yùn)算,而不再是字符串的運(yùn)算。,注意: 必須在英文狀態(tài)下輸入“單引號(hào)對(duì)”。 將多個(gè)字符串變量直接用“,”連接,可構(gòu)成一個(gè)較長(zhǎng)的新字符串變量。,4,【例32】串?dāng)?shù)組基本操作, string=this is an example!%輸入字符串string string = this is an example!, s_1=string(end:-1:1)%倒序排列string得到s_1 s_1 = !elpmaxe na si si

5、ht, s_2=string(end:-2:1) %倒序排列string且每隔一個(gè)字符取一個(gè)元素得到s_2 s_2 = !lmx as it, w=string=a%定義新串STRING,其內(nèi)容與string相同 STRING(w)=char(string(w)-32)%將小寫字符轉(zhuǎn)換成大寫字符(ASCII碼相差32) STRING = THIS IS AN EXAMPLE!, Str=Exm03_2.m,string(5:end) %構(gòu)造新的字符串Str Str = Exm03_2.m is an example!,5,3.1.2 復(fù)雜字符串?dāng)?shù)組的創(chuàng)建,1. 多行串?dāng)?shù)組的直接創(chuàng)建,必須保證各

6、行等長(zhǎng),可以利用增減“空格”來(lái)實(shí)現(xiàn)。, s=Hello, 6個(gè)字符 Nice to meet you! 17個(gè)字符 ? Error using = vertcat All rows in the bracketed expression must have the same number of columns., s=Hello, *ones(1,11) 補(bǔ)充11個(gè)空格 Nice to meet you! s = Hello, Nice to meet you!,size(s) ans = 2 17,2. 利用串操作函數(shù)創(chuàng)建多行串?dāng)?shù)組,利用專門的str2mat、strvcat和char函數(shù)可以

7、構(gòu)造出字符串?dāng)?shù)組,而不必考慮每行的字符數(shù)是否相等,總是按最長(zhǎng)的設(shè)置,不足的末尾用空格補(bǔ)齊。, s=char(Hello, Nice to meet you!); s=str2mat(Hello, Nice to meet you!); s=strvcat(Hello, Nice to meet you!);,s = Hello, Nice to meet you!,6, s1=str2mat(Hello, ,Nice to meet you!); s2=strvcat(Hello, ,Nice to meet you!); s1,s2, s_s=size(s),s_s1=size(s1),s_

8、s2=size(s2) s_s = 2 17 s_s1 = 3 17 s_s2 = 2 17,s1 = s2 = Hello, Hello, Nice to meet you! Nice to meet you!,區(qū)別: str2mat認(rèn)為空串代表空行; strvcat省略空串。,3. 利用串轉(zhuǎn)換函數(shù)產(chǎn)生數(shù)碼字符串,常用的數(shù)組/字符串轉(zhuǎn)換函數(shù)有int2str , num2str , mat2str 。 int2str:把整數(shù)數(shù)組轉(zhuǎn)換成字符串?dāng)?shù)組,非整數(shù)將被四舍五入后再轉(zhuǎn)換; num2str :把非整數(shù)數(shù)組轉(zhuǎn)換成字符串?dāng)?shù)組,常用于圖形中數(shù)據(jù)點(diǎn)的標(biāo)識(shí); mat2str:把數(shù)值數(shù)組轉(zhuǎn)換成字符串?dāng)?shù)組。

9、, a=0.9576 0.8 2.151;4.0 5 7.8; 23數(shù)值數(shù)組 a1=int2str(a) ; %取整數(shù) a2=num2str(a,2); 保持2位有效數(shù)字,轉(zhuǎn)換為串 a3=mat2str(a,2); 保持2位有效數(shù)字,轉(zhuǎn)換為一行串 a,a1,a2,a3,7,%清除內(nèi)存變量 %時(shí)間 t 從 0 到 10 每隔 0.01 均勻采樣 %對(duì)應(yīng)每一個(gè) t 求 y 值 %求最大值 y_max 及其下標(biāo) i_max %生成最大值點(diǎn)的橫坐標(biāo)字符串 %生成最大值點(diǎn)的縱坐標(biāo)字符串 %三行字符來(lái)標(biāo)識(shí)最大值點(diǎn) %圖名稱字符串 %新建一個(gè)圖形窗 %畫一條黑色的水平線 %保持圖形不被清除 %藍(lán)色實(shí)線畫曲線

10、 y(t) %大小為 20 的紅色圓點(diǎn)標(biāo)記最大值點(diǎn) %在最大值點(diǎn)附近顯示注釋字符 %顯示圖名 %顯示橫坐標(biāo)名 %顯示縱坐標(biāo)名 %取消圖形保持,【例33】作出函數(shù)y=e-2tsin(3t)的圖形,并標(biāo)注最大值點(diǎn),clear t = 0 : 0.01 : 10; y = exp( -2*t ) .* sin( 3*t ); y_max, i_max = max( y ); t_text = t = , num2str( t(i_max) ) ; y_text = y = , num2str( y_max ) ; max_text = char( Maxium, t_text, y_text );

11、Title = y = exp( -2*t ) .* sin( 3*t ) ; Figure plot( t,zeros( size(t) ), k ) hold on plot( t, y, b ) plot( t(i_max), y_max, r., MarkerSize, 20 ) text( t(i_max)+0.3, y_max+0.05, max_text ) title( Title ); xlabel( t ) ylabel( y ) hold off,8,9,3.1.3 串轉(zhuǎn)換函數(shù)和串操作函數(shù),1. 字符串轉(zhuǎn)換函數(shù)(詳見P76表3.1-1),2. 字符串操作函數(shù)(詳見P77表

12、3.1-2),length:用來(lái)計(jì)算字符串的長(zhǎng)度(即組成字符的個(gè)數(shù))。 char(s1,s2,):將串s1,s2,逐個(gè)寫成行,形成多行數(shù)組。 class或ischar:用來(lái)判斷某一個(gè)變量是否為字符串。class函數(shù)返回char則表示為字符串,而ischar函數(shù)返回1表示為字符串。,10,strcmp(s1,s2):比較字符串s1和s2是否相同。返回值如果為1則相同,為0則不同。 findstr(s1,s2):尋找在某個(gè)長(zhǎng)字符串s1中的子字符串s2,返回其起始位置。 deblank(s ): 刪除字符串尾部的空格。,str1=Hello ; str2=I like MATLAB %重復(fù)單引號(hào)來(lái)輸

13、入含有單引號(hào)的字符串 str2 = I like MATLAB, length(str2) %字符串str2的長(zhǎng)度 ans = 15, x1=double(str1) %查看字符串str1的ASCII碼 x1 = 72 101 108 108 111, x2=str1+1 %字符串的數(shù)值運(yùn)算 x2 = 73 102 109 109 112, char(x1) %將ASCII碼轉(zhuǎn)換成字符串形式 ans = Hello, char(x2) ans = Ifmmp,11, char(str1,str2) 形成兩行字符 ans = Hello I like MATLAB, strcat(str1,!,

14、str2,.) 形成一長(zhǎng)串 ans = Hello!I like MATLAB., strcmp(str1,str2) 比較兩串是否相同 ans = 0, findstr(str2,like) 尋找子串like的起始字符在主串中的下標(biāo) ans = 3, isletter(str2) %以邏輯1指示串中英文字母的位置 ans = Columns 1 through 12 1 0 1 1 1 1 0 0 1 1 1 1 Columns 13 through 15 1 1 0, class(str1) ,class(x1), 判斷變量類型 ans = char ans = double,12,執(zhí)行字

15、符串 如果需要直接“執(zhí)行”某一字符串,可以使用eval命令,效果就如同直接在MATLAB命令窗口內(nèi)輸入此命令。, str3=a=2*5 str3 = a=2*5, eval(str3) %執(zhí)行字符串 a = 10,顯示字符串 字符串可以直接使用disp命令顯示出來(lái),即使后面加分號(hào)(;)也顯示。, disp(請(qǐng)輸入2*2的矩陣a) 請(qǐng)輸入2*2的矩陣a, disp(char(str1,str2); Hello I like MATLAB,str1=Hello , str2=I like MATLAB str1 = Hello str2 = I like MATLAB,13,3.2元胞數(shù)組 (Ce

16、ll Array),特點(diǎn): 元胞數(shù)組的基本組成單元是元胞(cell),元胞在數(shù)組中以下標(biāo)來(lái)進(jìn)行區(qū)分; 元胞可以是任何類型、任意大小的數(shù)組(如:數(shù)值數(shù)組、字符串?dāng)?shù)組、符號(hào)對(duì)象等); 一個(gè)元胞數(shù)組中各個(gè)元胞可以是不同類型的內(nèi)容; 元胞數(shù)組的維數(shù)不受限制,可以采用單下標(biāo)或全下標(biāo)尋址; 元胞和元胞里的內(nèi)容是兩個(gè)不同范疇的東西,分別通過(guò)“元胞外標(biāo)識(shí)(Cell Indexing)”和”元胞內(nèi)編址(Content Addressing)”來(lái)尋訪?!巴鈽?biāo)識(shí)的元胞元素”用圓括號(hào)對(duì)(),而“編址元胞元素內(nèi)涵”用花括號(hào)對(duì),如A(2,3)表示元胞數(shù)組A第2行第3列的元胞,A2,3則表示元胞數(shù)組A第2行第3列的元胞中的

17、內(nèi)容。,3.2.1 元胞數(shù)組的創(chuàng)建,1. 直接使用花括號(hào)創(chuàng)建, clear A=This is the first Cell.,1 2;3 4;eye(3),Tom,Jane A = 1x23 char 2x2 double 3x3 double 1x2 cell ,創(chuàng)建的元胞數(shù)組中的元胞A(1,1)是字符串,A(1,2)是數(shù)組,A(2,1)是數(shù)組,而A(2,2)為一個(gè)元胞數(shù)組。, whos Name Size Bytes Class A 2x2 524 cell array Grand total is 49 elements using 524 bytes,14,2. 由各元胞創(chuàng)建外標(biāo)識(shí)元

18、胞元素賦值法, B(1,1)=This is the second Cell.;B(1,2)=5+3*i;B(1,3)=1 2;3 4; 5 6; B 顯示元胞數(shù)組 B = 1x24 char 5.0000+ 3.0000i 3x2 double,3. 由各元胞內(nèi)容創(chuàng)建 編址元胞元素內(nèi)涵的直接賦值法, C1,1=This is the third Cell.;C2,1=magic(4) 生成21的元胞數(shù)組 C = This is the third Cell. 4x4 double,3.2.2 元胞數(shù)組 的內(nèi)容顯示,在MATALB命令窗口中輸入元胞數(shù)組的名稱,并不直接顯示出元胞數(shù)組的各元胞元素

19、的內(nèi)容值,而是顯示各元胞元素的數(shù)據(jù)類型和結(jié)構(gòu) ,單元素的元胞除外。,1. 使用celldisp命令顯示元胞數(shù)組的內(nèi)容,A1,1 = This is the first Cell. A2,1 = 1 0 0 0 1 0 0 0 1,A1,2 = 1 2 3 4 A2,21 = Tom A2,22 = Jane, celldisp(A), celldisp(C),C1 = This is the third Cell. C2 = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1,表示元胞數(shù)組的元胞元素內(nèi)容,A2,21表示第2行第2列的元胞元素中存放的元胞數(shù)組的第1個(gè)元胞

20、元素的內(nèi)容,15,2. 使用cellplot命令以圖形顯示元胞數(shù)組的內(nèi)容,cellplot(A),3.2.3 元胞數(shù)組的內(nèi)容獲取,1. 取元胞數(shù)組的元素內(nèi)容,x1=A1,2 %用花括號(hào)尋訪取A(1,2) 元胞元素的內(nèi)容 x1 = 1 2 3 4,16,【例34】元胞數(shù)組的基本應(yīng)用,C = char(這是, 元胞數(shù)組 ); %兩行的字符串?dāng)?shù)組 R = reshape( 1:9,3,3 ); % 33 的數(shù)值數(shù)組 S = sym( sin(-3*t)*exp(-t) ); %符號(hào)表達(dá)式 A( 1,1 ) = C ; %對(duì)元胞數(shù)組 A 進(jìn)行賦值 A 2,1 = S; %注意 和 () 的區(qū)別,當(dāng)用圓

21、括號(hào)來(lái)尋址時(shí),所表示的是元胞,相應(yīng)地等號(hào)右邊也應(yīng)該是一個(gè)元胞; 當(dāng)用花括號(hào)來(lái)尋址時(shí),所表示的是元胞中的內(nèi)容,可以是任意類型、大小的數(shù)組。,x2=A1,2(2,2) %取A(1,2) 元胞元素的數(shù)組第二行第二列內(nèi)容 x2 = 4,2. 取元胞數(shù)組的元素,x3=A(1,2) 用圓括號(hào)尋訪得到的是元胞 x3 = 2x2 double,3. 使用deal函數(shù)取多個(gè)元胞元素的內(nèi)容,x4,x5,x6=deal(A2,3,4) 單下標(biāo)尋址取A的三個(gè)元胞內(nèi)容,x4 = 1 0 0 0 1 0 0 0 1,x5 = 1 2 3 4,x6 = Tom Jane,注意:x1是數(shù)組,x2是標(biāo)量。,17, celldi

22、sp( A ) %顯示元胞數(shù)組 A 的元胞中的內(nèi)容 A1,1 = 這是 元胞數(shù)組 A2,1 = sin(-3*t)*exp(-t) A1,2 = A2,2 = 1 4 7 2 5 8 3 6 9,A 2,2 = R; A %顯示元胞數(shù)組 A 的元胞 A = 2x4 char 1x1 sym 3x3 double, A 2,2 = R A = 2x4 char 1x1 sym 1x1 cell celldisp( A ) A1,1 = 這是 元胞數(shù)組 A2,1 = sin(-3*t)*exp(-t) A1,2 = A2,21 = 1 4 7 2 5 8 3 6 9 A 2,2 1(1,3)7,考

23、慮A 2,2 = R的情況:, class( A(2,1) ) %元胞的類型 ans = cell, class( A2,1 ) %元胞的內(nèi)容的類型 ans = sym,18, A( 2,1 ) % A 的第2行第1列的元胞 ans = 1x1 sym, A 2,1 % A 的第2行第1列的元胞中的內(nèi)容 ans = sin(-3*t)*exp(-t), save exm03_04.mat 保存內(nèi)存變量,3.2.4 元胞數(shù)組的擴(kuò)充、收縮和重組,【例35】元胞數(shù)組的擴(kuò)充、收縮和重組, clear load exm03_04 %載入數(shù)據(jù)文件 B = cell( 2 ); %創(chuàng)建空的 22 元胞數(shù)組

24、B 1,1 = Another cell array; %對(duì)元胞數(shù)組進(jìn)行賦值 B( :,2 ) = num2str(R) ; 1+2i %對(duì)第二列元胞賦值,注意前后大小一致 B = Another cell array 3x7 char 1.0000+ 2.0000i,19, A_B = A ; B %將 A, B 作為兩行排列得到 4*2 的元胞數(shù)組 A_B = 2x4 char 1x1 sym 3x3 double Another cell array 3x7 char 1.0000+ 2.0000i,cellplot( A_B , legend ) %元胞數(shù)組的形象結(jié)構(gòu)圖,%元胞數(shù)組的收

25、縮 A_B( 3,: ) = %刪除元胞數(shù)組的第 3 行 A_B = 2x4 char 1x1 sym 3x3 double 1.0000+ 2.0000i, RA_B = reshape( A_B, 2,3 ) %重新排列元胞數(shù)組的內(nèi)容,得到 23 的元胞數(shù)組 RA_B = 2x4 char 3x3 double 1x1 sym 1.0000+ 2.0000i,元胞數(shù)組內(nèi)容的獲取 A_B( 2,2 ) %取出 A_B 中的一個(gè)元胞 ans = 3x3 double,20, A_B 2,2 %取出該元胞的所有內(nèi)容 ans = 1 4 7 2 5 8 3 6 9, A_B 2,2 ( 2,: )

26、 %取出該元胞中第 2 行的所有元素 ans = 2 5 8, a1,a2 = deal( A_B 1,2 ) %一次取出多個(gè)元胞,并逐個(gè)分配 a1 = 這是 元胞數(shù)組 a2 = sin(-3*t)*exp(-t), a3=A_B2,2(:,1,3) %取出第 2 行第2列元胞內(nèi)容中的第1,3列 a3 = 1 7 2 8 3 9,注意:花括號(hào)、圓括號(hào)和中括號(hào)在尋址時(shí)的不同含義,21,3.3 構(gòu)架數(shù)組(Structure Array),特點(diǎn): 構(gòu)架數(shù)組的基本組成是構(gòu)架(Structure),以下標(biāo)區(qū)分各個(gè)構(gòu)架; 構(gòu)架必須劃分成“域”后才能使用,每一個(gè)構(gòu)架都包含多個(gè)域(Fields) ; 構(gòu)架不能

27、直接存放數(shù)據(jù),數(shù)據(jù)必須存放在構(gòu)架下面的“域”中; 構(gòu)架的域可以存放任意類型、任意大小的數(shù)組(數(shù)值數(shù)組、字符串?dāng)?shù)組、符號(hào)對(duì)象、元胞等); 不同構(gòu)架的同名域中可以存放不同類型的內(nèi)容; 構(gòu)架數(shù)組可以是任意維的,可以利用單下標(biāo)或全下標(biāo)尋址。,3.3.1 構(gòu)架數(shù)組的創(chuàng)建,1. 直接創(chuàng)建法直接對(duì)域賦值,ps(1).name= 曲線1 ; %構(gòu)架的域由(構(gòu)架名).(域名)標(biāo)識(shí) ps(1).color=red ; ps(1).position=0,0,300,300 ; ps(2).name=曲線2; ps(2).color=blue; ps(2).position=100,100,300,300 ;,ps是

28、構(gòu)架數(shù)組,ps(1)和ps(2)是構(gòu)架,name、color和position是域。,22,ps ps為12的構(gòu)架數(shù)組,有三個(gè)域 ps = 1x2 struct array with fields: name color position, ps(1) 顯示構(gòu)架 ans = name: 曲線1 color: red position: 0 0 300 300,2. 利用struct函數(shù)創(chuàng)建, ps(1)=struct(name,曲線1,color,red,position,0,0,300,300); ps(2)=struct(name,曲線2,color,blue,position,100,1

29、00,300,300) ps = 1x2 struct array with fields: name color position,3.3.2 構(gòu)架數(shù)組數(shù)據(jù)的獲取和設(shè)置,1. 直接獲取, x1=ps(1) 獲取一個(gè)構(gòu)架,x1 = name: 曲線1 color: red position: 0 0 300 300,23, x2=ps(1) .position 獲取構(gòu)架ps(1)中一個(gè)域position的全部?jī)?nèi)容 x2 = 0 0 300 300, x3= ps(1) .position(1,3) 獲取構(gòu)架ps(1) position域中第1行第3列的元素內(nèi)容 x3 = 300,2. 用get

30、field獲取構(gòu)架數(shù)組的數(shù)據(jù), x4=getfield(ps,1,color) 獲取構(gòu)架ps(1)中一個(gè)域color的全部?jī)?nèi)容 x4 = red, x5=getfield(ps,1, color,1) 獲取構(gòu)架ps(1) color域中第一個(gè)元素的內(nèi)容 x5 = r,3. 用setfield設(shè)置構(gòu)架數(shù)組的數(shù)據(jù), ps=setfield(ps,1, color, green); %對(duì)ps(1)中color域的內(nèi)容進(jìn)行設(shè)置 ps(1) ans = name: 曲線1 color: green position: 0 0 300 300,24,3.3.3 構(gòu)架數(shù)組域的獲取,1. 使用fieldnam

31、es獲取構(gòu)架數(shù)組的所有域, x6=fieldnames(ps) x6 = name color position,2. 獲取構(gòu)架數(shù)組域的數(shù)據(jù),使用“”合并相同域的數(shù)據(jù)并排成水平向量, all_x= all_x = 曲線1曲線2,使用cat將其變成多維數(shù)組, cat(1,ps.position) %沿第一維排列 ans = 0 0 300 300 100 100 300 300, cat(2,ps.position) %沿第二維排列 ans = 0 0 300 300 100 100 300 300,25,【例36】已知2輸入2輸出的LTI系統(tǒng)的傳遞函數(shù),利用表示該傳遞函數(shù)的構(gòu)架數(shù)

32、組來(lái)練習(xí)構(gòu)架數(shù)組的基本操作。,%1. 創(chuàng)建代表 2 輸入 2 輸出系統(tǒng)的傳遞函數(shù)的構(gòu)架數(shù)組 clear num = 3,2 ; 4 1,1 ; %分子系數(shù)構(gòu)成的元胞數(shù)組 den = 1,3,2,1,1,1 ; 1 2 2 1,1 0 ; %分母系數(shù)構(gòu)成的元胞數(shù)組, %2. 獲取構(gòu)架數(shù)組的域名 FN = fieldnames( SST ) %獲取域名,以元胞數(shù)組的形式保存 FN = num den Variable lti,SST = struct( ss ) %將傳遞函數(shù)矩陣轉(zhuǎn)換成構(gòu)架數(shù)組 SST = num: 2x2 cell den: 2x2 cell Variable: s lti: 1

33、x1 lti,ss = tf( num , den ); %利用控制工具箱函數(shù)產(chǎn)生傳遞函數(shù)矩陣,26, class( FN ) ans = cell,%3. 獲取構(gòu)架數(shù)組域中的內(nèi)容 ff = SST.den %獲取 SST 的 den 域中的所有內(nèi)容,為 22 的元胞數(shù)組 ff = 1x3 double 1x3 double 1x4 double 1x2 double, ff 2,1 %獲取 ff 中第 2 行第1列中內(nèi)容,相當(dāng)于 SST.den2,1 ans = 1 2 2 1, poly2str( ff2,1,s ) %以易讀形式顯示多項(xiàng)式 ans = s3 + 2 s2 + 2 s +

34、1, %4. 賦值操作 SST.num 2,1 ans = 0 0 4 1,SST.num 2,1 = 1 3 1 ; %對(duì) SST 的 num 域中第2行第1列的元胞內(nèi)容進(jìn)行修改, SST.num 2,1 ans = 1 3 1,27, %5. 構(gòu)架數(shù)組的擴(kuò)充 size( SST ) %SST為單構(gòu)架數(shù)組 ans = 1 1, SST( 2,2 ) = struct( tf(1,1 1) ) %將 SST 擴(kuò)充為 22 的構(gòu)架數(shù)組 SST = 2x2 struct array with fields: num den Variable lti, size(SST) ans = 2 2, %6

35、. 構(gòu)架數(shù)組的收縮 SST( 1,: ) = %將 SST 構(gòu)架數(shù)組的第 1 行刪除 SST = 1x2 struct array with fields: num den Variable lti, size(SST) ans = 1 2,28, %7. 構(gòu)架數(shù)組內(nèi)容的調(diào)取 Snum=SST(1,2).num %取出 SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的 num 域 Snum = 1x2 double, Sden=SST(1,2).den %取出 SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的 den 域 Sden = 1x2 double, printsys( Snum1, Sden1, s ) %利用

36、系統(tǒng)函數(shù)打印函數(shù)顯示 SST 的第1行第2列 %的構(gòu)架所代表的系統(tǒng)函數(shù) num/den = 1 - s + 1,Snum=SST(1,2).num1; %取出 SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的 num 域的內(nèi)容 Sden=SST(1,2).den1; %取出 SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的 den 域的內(nèi)容 printsys( Snum, Sden, s ) num/den = 1 - s + 1,29,【例37】其它命令, clear dept(5).No = 5 %生成 15 的構(gòu)架數(shù)組,只有No域 dept = 1x5 struct array with fields: No, d

37、ept(2).teacher=5 %任一個(gè)構(gòu)架增加 teacher 域,整個(gè)構(gòu)架數(shù)組都增加 teacher 域 dept = 1x5 struct array with fields: No teacher, dept(2).teacher.male=2; %增加一個(gè)構(gòu)架的teacher域的子域,對(duì)其他構(gòu)架沒有影響 dept(2).teacher.female=3 dept = 1x5 struct array with fields: No teacher, dept(2).teacher ans = male: 2 female: 3,30, dept(2).teacher=rmfield

38、(dept(2).teacher,male) %刪除子域?qū)ζ渌麡?gòu)架沒影響 dept = 1x5 struct array with fields: No teacher, dept=rmfield(dept,teacher) %刪除域?qū)λ袠?gòu)架都有影響 dept = 1x5 struct array with fields: No,對(duì)構(gòu)架數(shù)組增加或減少一個(gè)域會(huì)影響構(gòu)架數(shù)組內(nèi)所有的構(gòu)架; 對(duì)某一個(gè)構(gòu)架的域增加或減少一個(gè)子域不會(huì)影響構(gòu)架數(shù)組內(nèi)的其它構(gòu)架。,3.4 數(shù)據(jù)類型歸納,31,【例38】構(gòu)架數(shù)組和元胞數(shù)組之間的轉(zhuǎn)換, for k = 1:5 dept(k).No = No.,int2str(k); dept(k).teacher = teacher,int2str(k); end %構(gòu)造 15 構(gòu)架數(shù)組, 有No.域和teacher域, dept 顯示

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論