matlab中的數(shù)據(jù)導(dǎo)入和導(dǎo)出_第1頁
matlab中的數(shù)據(jù)導(dǎo)入和導(dǎo)出_第2頁
matlab中的數(shù)據(jù)導(dǎo)入和導(dǎo)出_第3頁
matlab中的數(shù)據(jù)導(dǎo)入和導(dǎo)出_第4頁
matlab中的數(shù)據(jù)導(dǎo)入和導(dǎo)出_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 HYPERLINK /tanghtctc/183931/message.aspx l # Matlab文件和數(shù)據(jù)的導(dǎo)入與導(dǎo)出Matlab文件和數(shù)據(jù)的導(dǎo)入與導(dǎo)出在編寫一個程序時,經(jīng)常需要從外部讀入數(shù)據(jù),或者將程序運行的結(jié)果保存為文件。MATLAB使用多種格式打開和保存數(shù)據(jù)。本章將要介紹 MATLAB中文件的讀寫和數(shù)據(jù)的導(dǎo)入導(dǎo)出。13.1 數(shù)據(jù)基本操作本節(jié)介紹基本的數(shù)據(jù)操作,包括工作區(qū)的保存、導(dǎo)入和文件打開。13.1.1 文件的存儲MATLAB支持工作區(qū)的保存。用戶可以將工作區(qū)或工作區(qū)中的變量以文件的形式保存,以備在需要時再次導(dǎo)入。保存工作區(qū)可以通過菜單進(jìn)行,也可以通過命令窗口進(jìn)行。1. 保存整

2、個工作區(qū)選擇File菜單中的Save Workspace As命令,或者單擊工作區(qū)瀏覽器工具欄中的Save,可以將工作區(qū)中的變量保存為MAT文件。2. 保存工作區(qū)中的變量在工作區(qū)瀏覽器中,右擊需要保存的變量名,選擇Save As,將該變量保存為MAT文件。3. 利用save命令保存該命令可以保存工作區(qū),或工作區(qū)中任何指定文件。該命令的調(diào)用格式如下: save:將工作區(qū)中的所有變量保存在當(dāng)前工作區(qū)中的文件中,文件名為 matlab.mat,MAT文件可以通過load函數(shù)再次導(dǎo)入工作區(qū),MAT函數(shù)可以被不同的機(jī)器導(dǎo)入,甚至可以通過其他的程序調(diào)用。 save(filename):將工作區(qū)中的所有變量

3、保存為文件,文件名由filename指定。如果filename中包含路徑,則將文件保存在相應(yīng)目錄下,否則默認(rèn)路徑為當(dāng)前路徑。 save(filename, var1, var2, .):保存指定的變量在 filename 指定的文件中。 save(filename, -struct, s):保存結(jié)構(gòu)體s中全部域作為單獨的變量。 save(filename, -struct, s, f1, f2, .):保存結(jié)構(gòu)體s中的指定變量。 save(-regexp, expr1, expr2, .):通過正則表達(dá)式指定待保存的變量需滿足的條件。 save(., format),指定保存文件的格式,格式可

4、以為MAT文件、ASCII文件等。13.1.2 數(shù)據(jù)導(dǎo)入MATLAB中導(dǎo)入數(shù)據(jù)通常由函數(shù)load實現(xiàn),該函數(shù)的用法如下: load:如果matlab.mat文件存在,導(dǎo)入matlab.mat中的所有變量,如果不存在,則返回error。 load filename:將filename中的全部變量導(dǎo)入到工作區(qū)中。 load filename X Y Z .:將filename中的變量X、Y、Z等導(dǎo)入到工作區(qū)中,如果是MAT文件,在指定變量時可以使用通配符“*”。 load filename -regexp expr1 expr2 .:通過正則表達(dá)式指定需要導(dǎo)入的變量。 load -ascii fi

5、lename:無論輸入文件名是否包含有擴(kuò)展名,將其以ASCII格式導(dǎo)入;如果指定的文件不是數(shù)字文本,則返回error。 load -mat filename:無論輸入文件名是否包含有擴(kuò)展名,將其以mat格式導(dǎo)入;如果指定的文件不是MAT文件,則返回error。例13-1 將文件matlab.map中的變量導(dǎo)入到工作區(qū)中。首先應(yīng)用命令whos file查看該文件中的內(nèi)容: whos -file matlab.mat Name Size Bytes Class A 2x3 48 double array I_q 415x552x3 687240 uint8 array ans 1x3 24 dou

6、ble array num_of_cluster 1x1 8 double arrayGrand total is 687250 elements using 687320 bytes將該文件中的變量導(dǎo)入到工作區(qū)中: load matlab.mat該命令執(zhí)行后,可以在工作區(qū)瀏覽器中看見這些變量,如圖13-1所示。圖13-1 導(dǎo)入變量后的工作區(qū)視圖接下來用戶可以訪問這些變量。 num_of_clusternum_of_cluster = 3MATLAB中,另一個導(dǎo)入數(shù)據(jù)的常用函數(shù)為importdata,該函數(shù)的用法如下: importdata(filename),將filename中的數(shù)據(jù)導(dǎo)入到

7、工作區(qū)中; A = importdata(filename),將filename中的數(shù)據(jù)導(dǎo)入到工作區(qū)中,并保存為變量A; importdata(filename,delimiter),將filename中的數(shù)據(jù)導(dǎo)入到工作區(qū)中,以delimiter指定的符號作為分隔符;例13-2 從文件中導(dǎo)入數(shù)據(jù)。 imported_data = importdata(matlab.mat)imported_data = ans: 1.1813 1.0928 1.6534 A: 2x3 double I_q: 415x552x3 uint8 num_of_cluster: 3與load函數(shù)不同,importda

8、ta將文件中的數(shù)據(jù)以結(jié)構(gòu)體的方式導(dǎo)入到工作區(qū)中。13.1.3 文件的打開MATLAB中可以使用open命令打開各種格式的文件,MATLAB自動根據(jù)文件的擴(kuò)展名選擇相應(yīng)的編輯器。 需要注意的是open(filename.mat)和load(filename.mat)的不同,前者將filename.mat以結(jié)構(gòu)體的方式打開在工作區(qū)中,后者將文件中的變量導(dǎo)入到工作區(qū)中,如果需要訪問其中的內(nèi)容,需要以不同的格式進(jìn)行。例13-3 open與load的比較。 clear A = magic(3); B = rand(3); saveSaving to: matlab.mat clear load(matl

9、ab.mat) AA = 8 1 6 3 5 7 4 9 2 BB = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 clear open(matlab.mat)ans = A: 3x3 double B: 3x3 double struc1=ans; struc1.Aans = 8 1 6 3 5 7 4 9 2 struc1.Bans = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.821413.2 文本文件的讀寫在上一節(jié)中介紹的函數(shù)和命令

10、主要用于讀寫mat文件,而在應(yīng)用中,需要讀寫更多格式的文件,如文本文件、word文件、xml文件、xls文件、圖像文件和音視頻文件等。本節(jié)介紹文本文件(txt)的讀寫。其他文件的讀寫,用戶可以參考MATLAB幫助文檔。MATLAB中實現(xiàn)文本文件讀寫的函數(shù)如表13-1所示。表13-1 MATLAB中文本文件讀寫函數(shù)函 數(shù)功 能csvread讀入以逗號分隔的數(shù)據(jù)csvwrite將數(shù)據(jù)寫入文件,數(shù)據(jù)間以逗號分隔dlmread將以 ASCII 碼分隔的數(shù)值數(shù)據(jù)讀入到矩陣中dlmwrite將矩陣數(shù)據(jù)寫入到文件中,以 ASCII 分隔textread從文本文件中讀入數(shù)據(jù),將結(jié)果分別保存textscan從文

11、本文件中讀入數(shù)據(jù),將結(jié)果保存為單元數(shù)組下面詳細(xì)介紹這些函數(shù)。1. csvread、csvwritecsvread函數(shù)的調(diào)用格式如下: M = csvread(filename),將文件filename中的數(shù)據(jù)讀入,并且保存為M,filename中只能包含數(shù)字,并且數(shù)字之間以逗號分隔。M是一個數(shù)組,行數(shù)與filename的行數(shù)相同,列數(shù)為filename列的最大值,對于元素不足的行,以0補(bǔ)充。 M = csvread(filename, row, col),讀取文件filename中的數(shù)據(jù),起始行為row,起始列為col,需要注意的是,此時的行列從0開始。 M = csvread(filenam

12、e, row, col, range),讀取文件filename 中的數(shù)據(jù),起始行為 row,起始列為col,讀取的數(shù)據(jù)由數(shù)組 range 指定,range 的格式為:R1 C1 R2 C2,其中R1、C1為讀取區(qū)域左上角的行和列,R2、C2為讀取區(qū)域右下角的行和列。csvwrite 函數(shù)的調(diào)用格式如下: csvwrite(filename,M),將數(shù)組M中的數(shù)據(jù)保存為文件filename,數(shù)據(jù)間以逗號分隔。 csvwrite(filename,M,row,col),將數(shù)組M中的指定數(shù)據(jù)保存在文件中,數(shù)據(jù)由參數(shù) row和col指定,保存row和col右下角的數(shù)據(jù)。 csvwrite寫入數(shù)據(jù)時每

13、一行以換行符結(jié)束。另外,該函數(shù)不返回任何值。這兩個函數(shù)的應(yīng)用見下面的例子。例13-4 函數(shù)csvread和csvwrite 的應(yīng)用。本例首先將MATLAB的圖標(biāo)轉(zhuǎn)化為灰度圖,將數(shù)據(jù)存儲在文本文件中,再將其部分讀出,顯示為圖形。編寫M文件,命名為immatlab.m,內(nèi)容為:% the example of functions csvread and csvwriteI_MATLAB= imread(D:matlab.bmp); % read in the imageI_MATLAB= rgb2gray(I_matlab); % convert the image to gray imagefi

14、gure,imshow(I_matlab,InitialMagnification,100); % show the imagecsvwrite(D:matlab.txt,I_matlab); % write the data into a text filesub_MATLAB= csvread(D:matlab.txt,100,100);% read in part of the datasub_MATLAB= uint8(sub_matlab); % convert the data to uint8figure,imshow(sub_matlab,InitialMagnificatio

15、n,100); % show the new image在命令窗口中運行該腳本,輸出圖形如圖13-2所示。(a) (b)圖13-2 例13-3 的運行結(jié)果該例中涉及到了少量的圖像處理內(nèi)容,超出本書的范圍,感興趣的讀者可以查閱 MATLAB幫助文檔中關(guān)于Image Processing Toolbox的介紹。2. dlmread、dlmwrite(個人覺得這個比較好用)dlmread函數(shù)用于從文檔中讀入數(shù)據(jù),其功能強(qiáng)于csvread。dlmread的調(diào)用格式如下: M = dlmread(filename) M = dlmread(filename, delimiter) M = dlmread

16、(filename, delimiter, R, C) M = dlmread(filename, delimiter, range)其中參數(shù)delimiter用于指定文件中的分隔符,其他參數(shù)的意義與csvread函數(shù)中參數(shù)的意義相同,這里不再贅述。dlmread函數(shù)與csvread函數(shù)的差別在于,dlmread函數(shù)在讀入數(shù)據(jù)時可以指定分隔符,不指定時默認(rèn)分隔符為逗號。dlmwrite函數(shù)用于向文檔中寫入數(shù)據(jù),其功能強(qiáng)于csvwrite函數(shù)。dlmwrite函數(shù)的調(diào)用格式為: dlmwrite(filename, M),將矩陣M的數(shù)據(jù)寫入文件filename中,以逗號分隔。 dlmwrite(

17、filename, M, D),將矩陣M的數(shù)據(jù)寫入文件filename中,采用指定的分隔符分隔數(shù)據(jù),如果需要tab鍵,可以用“t”指定。 dlmwrite(filename, M, D, R, C),指定寫入數(shù)據(jù)的起始位置。 dlmwrite(filename, M, attribute1, value1, attribute2, value2, .),指定任意數(shù)目的參數(shù),可以指定的參數(shù)見下表。 dlmwrite(filename, M, -append),如果filename指定的文件存在,在文件后面寫入數(shù)據(jù),不指定時則覆蓋原文件。 dlmwrite(filename, M, -append

18、, attribute-value list),敘寫文件,并指定參數(shù)。 dlmwrite 函數(shù)的可用參數(shù)如表13-2所示。表13-2 dlmwrite函數(shù)的可用參數(shù)參 數(shù) 名功 能delimiter用于指定分隔符newline用于指定換行符,可以選擇“pc”或者“unix”roffset行偏差,指定文件第一行的位置,roffset 的基數(shù)為 0coffset列偏差,指定文件第一列的位置,coffset 的基數(shù)為 0precision指定精確度,可以指定精確維數(shù),或者采用 c 語言的格式,如“%10.5f”3. textread,textscan當(dāng)文件的格式已知時,可以利用textread函數(shù)和

19、textscan函數(shù)讀入。這里只介紹這兩個函數(shù)應(yīng)用的實例。例13-5 通過%讀入文件,按照原有格式讀取。文件的內(nèi)容為:Sally Level1 12.34 45 Yes在命令窗口中輸入: names, types, x, y, answer = textread(D:mat.txt,%s %s %f %d %s, 1)得到結(jié)果為:names = Sallytypes = Level1x = 12.3400y = 45answer = Yes例13-6 函數(shù)csvread和csvwrite的應(yīng)用Sally Level1 12.34 45 1.23e10 inf NaN YesJoe Level2

20、 23.54 60 9e19 -inf 0.001 NoBill Level3 34.90 12 2e5 10 100 No fid = fopen(D:mat.txt); C = textscan(fid, %s %s %f32 %d8 %u %f %f %s); fclose(fid);13.3 低級文件I/O本節(jié)介紹一些基本的文件操作,這些操作如表13-3所示。表13-3 MATLAB的基本文件操作函 數(shù)功 能 fclose關(guān)閉打開的文件 feof判斷是否為文件結(jié)尾 ferror文件輸入輸出中的錯誤查找 fgetl讀入一行,忽略換行符 fgets讀入一行,直到換行符 fopen打開文件,

21、或者獲取打開文件的信息 fprintf格式化輸入數(shù)據(jù)到文件 fread從文件中讀取二進(jìn)制數(shù)據(jù) frewind將文件的位置指針移至文件開頭位置 fscanf格式化讀入 fseek設(shè)置文件位置指針 ftell文件位置指針 fwrite向文件中寫入數(shù)據(jù)下面重點介紹函數(shù)fprintf。該函數(shù)的調(diào)用格式如下:count = fprintf(fid, format, A, .),該語句將矩陣A及后面其他參數(shù)中數(shù)字的實部以 format 指定的格式寫入到fid指定的文件中,返回寫入數(shù)據(jù)的字節(jié)數(shù)。上面語句中,參數(shù)format由%開頭,共可由4個部分組成,分別如下: 標(biāo)記(flag),為可選部分。 寬度和精度指

22、示,為可選部分。 類型標(biāo)志符,為可選部分。 轉(zhuǎn)換字符,為必需部分。1. 標(biāo)記標(biāo)記用于控制輸出的對齊方式,可以選擇的內(nèi)容如表13-4所示。表13-4 標(biāo)記的可選內(nèi)容函 數(shù)功 能示 例負(fù)號(-) 在參數(shù)左側(cè)進(jìn)行判別 %-5.2d加號(+) 在數(shù)字前添加符號 %+5.2d空格 在數(shù)字前插入空格 % 5.2d0 在數(shù)字前插入0 %05.2d2. 寬度和精度指示用戶可以通過數(shù)字指定輸出數(shù)字的寬度及精度,格式如下: %6f,指定數(shù)字的寬度; %6.2f,指定數(shù)字的寬度及精度; %.2f,指定數(shù)字的精度。例13-6 fprintf函數(shù)寬度和精度指示符示例。在命令窗口中輸入如下命令: file_type =

23、fopen(D:type.txt,w); fprintf(file_h, %6.2f %12.8fn, 1.2, -43.3); fprintf(file_h, %6f %12fn, 1.2, -43.3); fprintf(file_h, %.2f %.8fn, 1.2, -43.3); fclose(file_h)ans = 0打開該文件,其內(nèi)容為: 1.20 -43.300000001.200000 -43.3000001.20 -43.30000000從上述結(jié)果可以看出寬度和精度控制的效果。3. 轉(zhuǎn)換字符轉(zhuǎn)換字符用于指定輸出的符號,可以選擇的內(nèi)容如表13-5所示。表13-5 格式化輸出

24、的標(biāo)志符及意義標(biāo) 志 符意 義 %c輸出單個字符 %d輸出有符號十進(jìn)制數(shù) %e采用指數(shù)格式輸出,采用小寫字母 e,如:3.1415e+00(續(xù)表)標(biāo) 志 符意 義 %E采用指數(shù)格式輸出,采用大寫字母 E,如:3.1415E+00 %f以定點數(shù)的格式輸出 %g%e及%f的更緊湊的格式,不顯示數(shù)字中無效的 0 %G與%g相同,但是使用大寫字母E %i有符號十進(jìn)制數(shù) %o無符號八進(jìn)制數(shù) %s輸出字符串 %u無符號十進(jìn)制數(shù) %x十六進(jìn)制數(shù)(使用小寫字母af) %X十六進(jìn)制數(shù)(使用大寫字母AF)其中 %o、%u、%x、%X支持使用子類型,具體情況這里不再贅述。格式化輸出標(biāo)志符的效果見下面的例子。例13-

25、7 fprintf 格式化輸出示例。 x = 0:.1:1; y = x; exp(x); fid = fopen(exp.txt, wt); fprintf(fid, %6.2f %12.8fn, y); fclose(fid)ans = 0顯示該文件: type exp.txt 0.00 1.00000000 0.10 1.10517092 0.90 2.45960311 1.00 2.71828183例13-9 利用 fprintf 函數(shù)在顯示器上輸出字符串 fprintf(1,Its Friday.n)Its Friday.在該例中,利用1表示顯示器,并且用兩個單引號顯示單引號,使用n

26、進(jìn)行換行。在格式化輸出中,這類符號稱為轉(zhuǎn)義符。MATLAB中的常用轉(zhuǎn)義符如表13-6所示。表13-6 MATLAB中的常用轉(zhuǎn)義符轉(zhuǎn) 義 符功 能 b退格 f表格填充 n換行符 r回車 ttab ,反斜線 或 ,單引號 %,百分號13.4 利用界面工具導(dǎo)入數(shù)據(jù)除前面幾節(jié)介紹的函數(shù)外,也可以通過界面工具將數(shù)據(jù)導(dǎo)入到工作區(qū)中。本節(jié)介紹利用工作區(qū)瀏覽器中的工具導(dǎo)入數(shù)據(jù)。選擇工作區(qū)瀏覽器工具欄中的“Import Data”,選擇待導(dǎo)入的文件,這里我們選擇了一個文本文件,其內(nèi)容為逗號分隔的數(shù)字,打開窗口如圖13-3所示。附錄資料:MATLAB Cell函數(shù)使用技巧談?wù)凪ATLAB中cell函數(shù)如果p為一個

27、數(shù),那么h(1)=p,是沒有問題的。如果p為一個向量,那么h(1,:)=p是沒有問題的。如果p是一個矩陣的話,上面的兩種賦值方法都是會有錯誤的。那么要如何處理呢?這時就用到了cell數(shù)據(jù)類型了。cell的每個單元都可以存儲任何數(shù)據(jù),比如傳遞函數(shù)等。當(dāng)然,存儲矩陣更是沒有問題的了。但是用cell數(shù)據(jù)類型之前,要先初始化。a=cell(n,m)那么就把a(bǔ)初始化為一個n行m列的空cell類型數(shù)據(jù)。如何賦值呢?a1,1=rand(5)那么a的1行1列的單元中存儲的就是一個隨機(jī)的55的方陣了。那么要用第一個單元中的方陣中的某個值呢?可以如下引用:a1,1(2,3)就可以了,引用cell單元時要用,再引用

28、矩陣的某個數(shù)據(jù)就要用()了。cell單元中的每個單元都是獨立的,可以分別存儲不同大小的矩陣或不同類型的數(shù)據(jù)。下面舉個例子:a=cell(2,2);%預(yù)分配a1,1=cellclass;a1,2=1 2 2;a2,1=a,b,c;a2,2=9 5 6;a1,1ans =cellclassa1,2ans = 1 2 2a2,:ans =abcans = 9 5 6 b=a1,1b =cellclass元胞數(shù)組:元胞數(shù)組是MATLAB的一種特殊數(shù)據(jù)類型,可以將元胞數(shù)組看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞數(shù)組的元素可以是任何一種數(shù)據(jù)類型的常數(shù)或者常量,每一個元素也可以具有不同的尺寸和

29、內(nèi)存占用空間,每一個元素的內(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 = 10c(1,2)=2c = 10 2c(2,2)=5c = 10 2 5isequal(a,b)ans = 1whosName Size Bytes Class Att

30、ributesa 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

31、 c 3x3 36 cell d 2x2x2 32 cell (2)元胞數(shù)組的數(shù)據(jù)獲得從元胞數(shù)組中讀取數(shù)據(jù),可保存為一個標(biāo)準(zhǔn)的數(shù)組或一個新的單元數(shù)組,或取出數(shù)組進(jìn)行計算。元胞數(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 doublestr=a(1,2)str = matlabclass(str)ans =cellstr=a1,2str =matlabclass(str)ans =char()和有

32、著本質(zhì)的區(qū)別,大括號用于表示元胞的內(nèi)容,小括號表示指定的元胞。a = 20 matlab 2x3 double 1x3 doublea2,1(2,2)ans = 0.9134a2,1(2,3)ans = 0.0975a1,2(2)ans =a使用元胞的下標(biāo),可將一個元胞數(shù)組的子集賦值給另一個變量,創(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)元

33、胞數(shù)組的刪除和重塑要刪除單元數(shù)組中的行或列,可以用冒號表示單元數(shù)組中的行或列,然后對其賦一個空矩陣即可。a=20,matlab;ones(2,3),1:3a = 20 matlab 2x3 double 1x3 doublea(1,:)=a = 2x3 double 1x3 double a=20,matlab;ones(2,3),1:3;a1=a = matlab 2x3 double 1x3 doublea(1)=a = 2x3 double matlab 1x3 doublea(2)=a = 2x3 double 1x3 doublea(1,2)=? A null assignment

34、can have only one non-colon index.a(1)=a = 1x3 double元寶數(shù)組和其他數(shù)組一樣,也可以通過reshape函數(shù)改變形狀,改變后的元胞數(shù)組與原元胞數(shù)組的元素個數(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ù)組的每個元胞執(zhí)行指定的函數(shù)celldisp:顯示所有元胞的內(nèi)容cellplot:利用圖形方式顯示元胞數(shù)組 cell2mat:將

35、元胞數(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:若元胞元素為

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論