数据输出matlab,MATLAB数据输出
MATLAB中的數(shù)據(jù)導(dǎo)出(或輸出)意味著寫(xiě)入文件。MATLAB允許您在另一個(gè)讀取ASCII文件的應(yīng)用程序中使用您的數(shù)據(jù)。為此,MATLAB提供了幾個(gè)數(shù)據(jù)導(dǎo)出選項(xiàng)。
您可以創(chuàng)建以下類型的文件:
來(lái)自數(shù)組的矩形,分隔的ASCII數(shù)據(jù)文件。
日記(或日志)文件的按鍵和結(jié)果文本輸出。
使用fprintf等低級(jí)功能的專用ASCII文件。
MEX文件訪問(wèn)您寫(xiě)入特定文本文件格式的C / C ++或Fortran例程。
除此之外,您還可以將數(shù)據(jù)導(dǎo)出到電子表格。
將數(shù)字?jǐn)?shù)組導(dǎo)出為分隔的ASCII數(shù)據(jù)文件有兩種方法 -
使用保存功能并指定-ascii限定符
使用dlmwrite函數(shù)
使用保存功能的語(yǔ)法是:
save my_data.outnum_array-ascii
其中,my_data.out是創(chuàng)建的分隔ASCII數(shù)據(jù)文件,num_array是一個(gè)數(shù)字?jǐn)?shù)組,-ascii是說(shuō)明符。
使用dlmwrite函數(shù)的語(yǔ)法是:
dlmwrite("my_data.out",num_array,"dlm_char")
其中,my_data.out是創(chuàng)建的分隔ASCII數(shù)據(jù)文件,num_array是數(shù)字?jǐn)?shù)組,dlm_char是分隔符。
例
以下示例演示了該概念。創(chuàng)建腳本文件并鍵入以下代碼 -
num_array=[1234;4567;7890];save array_data1.outnum_array-ascii;type array_data1.outdlmwrite("array_data2.out",num_array," ");type array_data2.out
運(yùn)行文件時(shí),會(huì)顯示以下結(jié)果 -
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00
4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00
7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00
1 2 3 4
4 5 6 7
7 8 9 0
請(qǐng)注意,保存-ascii命令和dlmwrite函數(shù)不能作為輸入使用單元格數(shù)組。要從單元格數(shù)組的內(nèi)容創(chuàng)建一個(gè)分隔的ASCII文件,您可以
或者,使用cell2mat函數(shù)將單元格數(shù)組轉(zhuǎn)換為矩陣
或使用低級(jí)文件I / O功能導(dǎo)出單元數(shù)組。
如果使用保存功能將字符數(shù)組寫(xiě)入ASCII文件,則會(huì)將ASCII等效字符寫(xiě)入文件。
例如,讓我們把一個(gè)單詞"hello"寫(xiě)入一個(gè)文件 -
h="hello";save textdata.outh-ascii
type textdata.out
MATLAB執(zhí)行上述語(yǔ)句并顯示以下結(jié)果。這是8位ASCII格式的字符string“hello”的字符。
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
寫(xiě)日記文件
日記文件是MATLAB會(huì)話的活動(dòng)日志。日記功能在磁盤文件中創(chuàng)建會(huì)話的精確副本,不包括圖形。
打開(kāi)日記功能,鍵入 -
diary
或者,您可以給出日志文件的名稱,例如 -
diary logdata.out
關(guān)閉日記功能 -
diary off
您可以在文本編輯器中打開(kāi)日記文件。
將數(shù)據(jù)導(dǎo)出到具有低級(jí)別I / O的文本數(shù)據(jù)文件
到目前為止,我們已經(jīng)導(dǎo)出數(shù)組。但是,您可能需要?jiǎng)?chuàng)建其他文本文件,包括數(shù)字和字符數(shù)據(jù)的組合,非矩形輸出文件或具有非ASCII編碼方案的文件。為了這些目的,MATLAB提供了低級(jí)別的fprintf功能。
在低級(jí)I / O文件活動(dòng)中,在導(dǎo)出之前,您需要使用fopen函數(shù)打開(kāi)或創(chuàng)建一個(gè)文件,并獲取文件標(biāo)識(shí)符。默認(rèn)情況下,fopen打開(kāi)一個(gè)只讀訪問(wèn)的文件。您應(yīng)該指定寫(xiě)入或附加的權(quán)限,例如“w”或“a”。
處理文件后,需要用fclose(fid)函數(shù)關(guān)閉它。
以下示例演示了這個(gè)概念 -
例
創(chuàng)建腳本文件并在其中鍵入以下代碼 -
%create a matrix y,withtwo rows
x=0:10:100;y=[x;log(x)];%open a fileforwriting
fid=fopen("logtable.txt","w");%TableHeaderfprintf(fid,"Log Function
");%printvaluesincolumn order%two values appear on each row of the file
fprintf(fid,"%f %f
",y);fclose(fid);%display the file created
type logtable.txt
運(yùn)行文件時(shí),會(huì)顯示以下結(jié)果 -
Log Function
0.000000 -Inf
10.000000 2.302585
20.000000 2.995732
30.000000 3.401197
40.000000 3.688879
50.000000 3.912023
60.000000 4.094345
70.000000 4.248495
80.000000 4.382027
90.000000 4.499810
100.000000 4.605170
總結(jié)
以上是生活随笔為你收集整理的数据输出matlab,MATLAB数据输出的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cgi一键还原 linux分区,用一键恢
- 下一篇: matlab disp输出换行,matl