MATLAB元胞數(shù)組創(chuàng)建與訪問.docx_第1頁
MATLAB元胞數(shù)組創(chuàng)建與訪問.docx_第2頁
MATLAB元胞數(shù)組創(chuàng)建與訪問.docx_第3頁
MATLAB元胞數(shù)組創(chuàng)建與訪問.docx_第4頁
MATLAB元胞數(shù)組創(chuàng)建與訪問.docx_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

元胞數(shù)組是MATLAB的一種特殊數(shù)據(jù)類型,可以將元胞數(shù)組看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞數(shù)組的元素可以是任何一種數(shù)據(jù)類型的常數(shù)或者常量,每一個(gè)元素也可以具有不同的尺寸和內(nèi)存占用空間,每一個(gè)元素的內(nèi)容也可以完全不同,所以元胞數(shù)組的元素叫做元胞(cell)。和一般的數(shù)值矩陣一樣,元胞數(shù)組的內(nèi)存空間也是動態(tài)分配的。 (1)元胞數(shù)組的創(chuàng)建 a=matlab,20;ones(2,3),1:10a = matlab 20 2x3 double 1x10 double b=matlab,20;ones(2,3),1:10b = matlab 20 2x3 double 1x10 double c=10c = 10 c(1,2)=2c = 10 2 c(2,2)=5c = 10 2 5 isequal(a,b)ans = 1 whosName Size Bytes Class Attributesa 2x2 388 cell ans 1x1 1 logical b 2x2 388 cell c 2x2 208 cell 用cell函數(shù)創(chuàng)建元胞數(shù)組,創(chuàng)建的數(shù)組為空元胞。cell函數(shù)創(chuàng)建空元胞數(shù)組的主要目的是為數(shù)組預(yù)先分配連續(xù)的存儲空間,節(jié)約內(nèi)存占用,提高執(zhí)行效率。 a=cell(1)a = b=cell(1,2)b = c=cell(3,3)c = d=cell(2,2,2)d(:,:,1) = d(:,:,2) = whosName Size Bytes Class Attributesa 1x1 4 cell ans 1x1 1 logical b 1x2 8 cell c 3x3 36 cell d 2x2x2 32 cell (2)元胞數(shù)組的數(shù)據(jù)獲得 從元胞數(shù)組中讀取數(shù)據(jù),可保存為一個(gè)標(biāo)準(zhǔn)的數(shù)組或一個(gè)新的單元數(shù)組,或取出數(shù)組進(jìn)行計(jì)算。元胞數(shù)組中數(shù)據(jù)的訪問,可通過元胞內(nèi)容的下標(biāo)進(jìn)行,用元胞數(shù)組名加大括號。大括號中數(shù)值表示元胞的下標(biāo)。如a1,2表示元胞數(shù)組中第一行第二列的元胞。 a=20,matlab;ones(2,3),1:3a = 20 matlab 2x3 double 1x3 double str=a(1,2)str = matlab class(str)ans =cell str=a1,2str =matlab class(str)ans =char()和有著本質(zhì)的區(qū)別,大括號用于表示元胞的內(nèi)容,小括號表示指定的元胞。a = 20 matlab 2x3 double 1x3 double a2,1(2,2)ans = 0.9134 a2,1(2,3)ans = 0.0975 a1,2(2)ans =a使用元胞的下標(biāo),可將一個(gè)元胞數(shù)組的子集賦值給另一個(gè)變量,創(chuàng)建新的元胞數(shù)組。 a=1,2,3;4,5,6;7,8,9a = 1 2 3 4 5 6 7 8 9 b=a(2:3,2:3)b = 5 6 8 9 c=a(1:3,2:3)c = 2 3 5 6 8 9 本例使用元胞下標(biāo)的方式創(chuàng)建了新的元胞數(shù)組b和c,通過結(jié)果看出b和c就是元胞數(shù)組a的一部分。 (3)元胞數(shù)組的刪除和重塑 要?jiǎng)h除單元數(shù)組中的行或列,可以用冒號表示單元數(shù)組中的行或列,然后對其賦一個(gè)空矩陣即可。a=20,matlab;ones(2,3),1:3a = 20 matlab 2x3 double 1x3 double a(1,=a = 2x3 double 1x3 double a=20,matlab;ones(2,3),1:3; a1=a = matlab 2x3 double 1x3 double a(1)=a = 2x3 double matlab 1x3 double a(2)=a = 2x3 double 1x3 double a(1,2)=? A null assignment can have only one non-colon index. a(1)=a = 1x3 double 元寶數(shù)組和其他數(shù)組一樣,也可以通過reshape函數(shù)改變形狀,改變后的元胞數(shù)組與原元胞數(shù)組的元素個(gè)數(shù)相同,不能通過改變形狀來添加或刪除元胞數(shù)組中的元素。 a=cell(4,4)a = size(a)ans = 4 4 b=reshape(a,2,8)b = size(b)ans = 2 8 (5)元胞數(shù)組中的操作函數(shù) cell:創(chuàng)建空的元胞數(shù)組 cellfun:為元胞數(shù)組的每個(gè)元胞執(zhí)行指定的函數(shù) celldisp:顯示所有元胞的內(nèi)容 cellplot:利用圖形方式顯示元胞數(shù)組 cell2mat:將元胞數(shù)組轉(zhuǎn)變成為普通的矩陣 mat2cell:將數(shù)值矩陣轉(zhuǎn)變成為元胞數(shù)組 num2cell:將數(shù)值數(shù)組轉(zhuǎn)變成為元胞數(shù)組 deal:將輸入?yún)?shù)賦值給輸出 cell2struct:將元胞數(shù)組轉(zhuǎn)變成為結(jié)構(gòu) struct2cell:將結(jié)構(gòu)轉(zhuǎn)變?yōu)樵麛?shù)組 iscell:判斷輸入是否為元胞數(shù)組 a=20,matlab,3-7i;ones(2,3),1:3,0a = 20 matlab 3.0000 - 7.0000i 2x3 double 1x3 double 0 b=cellfun(isreal,a)b = 1 1 0 1 1 1 c=cellfun(length,a)c = 1 6 1 3 3 1 d=cellfun(isclass,a,double)d = 1 0 1 1 1 1(函數(shù)的應(yīng)用) cellfun函數(shù)的主要功能是對元胞數(shù)組的元素(元胞)分別指定不同的函數(shù),不過,能夠在cellfun函數(shù)中使用的函數(shù)ushuliang是有限的。 能在cellfun中使用的函數(shù): isempty:若元胞元素為空,則返回邏輯真 islogical:若元胞元素為邏輯類型,則返回邏輯真 isreal:若元胞元素為實(shí)數(shù),則返回邏輯真 length:元胞元素的長度 ndims:元胞元素的維數(shù) prodofsize:元胞元素包含的元素個(gè)數(shù) (7)元胞數(shù)組的嵌套 元胞數(shù)組的元胞中包含其他的元胞數(shù),稱為嵌套元胞數(shù)組,沒有嵌套結(jié)構(gòu)的元胞則稱為頁元胞。使用嵌套的大括號或cell函數(shù),或直接用賦值表達(dá)式,都可以創(chuàng)建嵌套單元數(shù)組,另外還可以訪問嵌套元胞數(shù)組的子數(shù)組、元胞或元胞的元素。 a=cell(1,2)a = a(1,2)=cell(2,2)a = 2x2 cell a(1,1)

溫馨提示

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

評論

0/150

提交評論