資源描述:
《matlab使用單元數(shù)組和結(jié)構(gòu)數(shù)組》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Matlab使用單元數(shù)組(cellarray)和結(jié)構(gòu)數(shù)組(structarray)要在MALTAB中實(shí)現(xiàn)比較復(fù)雜的編程,就不能不用單元數(shù)組(cellarray)和結(jié)構(gòu)數(shù)組(structarray)。而且在Matlab中實(shí)現(xiàn)struct比C中更為方便。一.單元數(shù)組單元數(shù)組中的每一個(gè)元素稱(chēng)為單元(cell).單元可以包含任何類(lèi)型的matlab數(shù)據(jù),這些數(shù)據(jù)類(lèi)型包括數(shù)值數(shù)組,字符,符號(hào)對(duì)象,甚至其他的單元數(shù)組和結(jié)構(gòu)體.不同的單元可以包含不同的數(shù)據(jù).1.1單元數(shù)組創(chuàng)建與顯示:1、直接賦值法:按單元索引法和按內(nèi)容索引法。(其實(shí)也就是將花括號(hào)放在等式的右邊或是左邊的區(qū)別)
2、。注意:“按單元索引法”和“按內(nèi)容索引法”是完全等效的,可以互換使用。通過(guò)下面實(shí)例,我們看到:花括號(hào){}用于訪(fǎng)問(wèn)單元的值,而括號(hào)()用于標(biāo)識(shí)單元(即:不用于訪(fǎng)問(wèn)單元的值)。具體理解{}和()區(qū)別可以在下面代碼最后分別輸入A{2,2}和A(2,2)。就會(huì)發(fā)現(xiàn)“按內(nèi)容索引法{}”能顯示完整的單元內(nèi)容,而“按單元索引法()”有時(shí)無(wú)法顯示完整的單元內(nèi)容。>>A(1,1)={[123;456;789]};?????????%按單元索引法>>A(1,2)={2+3i};>>A(2,1)={'Acharacter'};>>A(2,2)={12:-2:0};>>A??????
3、???????????????????%要想詳細(xì)顯示A中的內(nèi)容,可用指令:celldisp(A)A=????[3x3double]???[2.0000+3.0000i]???'Acharacter'?????????[1x7double]>>B{1,1}=[123;456;789];???????%按內(nèi)容索引法。>>B{1,2}=2+3i;>>B{2,1}='Acharacter';>>B{2,2}=12:-2:0;>>BB=????[3x3double]???[2.0000+3.0000i]???'Acharacter'?????????[1x7double
4、]2、利用cell函數(shù)法:即首先用cell函數(shù)生成一個(gè)空的單元數(shù)組,然后再向其中添加所需的數(shù)據(jù)。下面的代碼生成一個(gè)2X3的空單元數(shù)組:>>C=cell(2,3)C=????[]????[]????[]????[]????[]????[]利用cell生成空單元數(shù)組后,可以采用“按單元索引法”和“按內(nèi)容索引法”對(duì)其進(jìn)行賦值。在賦值時(shí),用戶(hù)一定要注意{}和()的用法。>>C(1,1)={'Thisdoeswork'}C=???'Thisdoeswork'????[]????[]?????????????????[]????[]????[]>>C{2,3}='This
5、work'C=???'Thisdoeswork'????[]????????????[]?????????????????[]????[]???'Thiswork'(1)利用cell指令創(chuàng)建單元數(shù)組C=cell(2);%預(yù)設(shè)空單元數(shù)組C(:,1)={char('Another','textstring');10:-1:1}%對(duì)第一列單元賦值C=[2x11char][][1x10double][](2)單元數(shù)組的“列”擴(kuò)充和“行”擴(kuò)充AC=[AC]%空格(或逗號(hào))利用來(lái)分隔列A_C=[A;C]%分號(hào)利用來(lái)分隔“行”AC=[2x10char][3x3double]
6、[2x11char][][1.0000+2.0000i][1x1sym][1x10double][]A_C=[2x10char][3x3double][1.0000+2.0000i][1x1sym][2x11char][][1x10double][]【例】cellplot能用圖形形象化地表示單元數(shù)組的內(nèi)容。(A_C取自上例)cellplot(A_C,'legend')單元數(shù)組的收縮A_C(3,:)=[]%刪除第3行,使A_C成為的單元數(shù)組A_C=[2x10char][3x3double][1.0000+2.0000i][1x1sym][1x10double][
7、]把A_C重組成單元數(shù)組R_A_CR_A_C=reshape(A_C,2,3)R_A_C=[2x10char][1x10double][1x1sym][1.0000+2.0000i][3x3double][]1.2單元數(shù)組內(nèi)容的調(diào)取取一個(gè)單元f1=R_A_C(1,3)%使用園括號(hào)尋訪(fǎng)得到的是單元,而不僅是內(nèi)容。class(f1)f1=[1x1sym]ans=cell取一個(gè)單元的內(nèi)容f2=R_A_C{1,3}%用花括號(hào)尋訪(fǎng)取得內(nèi)容class(f2)f2=sin(-3*t)*exp(-t)ans=sym取單元內(nèi)的子數(shù)組f3=R_A_C{1,1}(:,[1256])
8、%注意三種括號(hào)的不同用途%取第1行第1