MATLAB中的數據寫入函數dlmwrite dlmread


MATLAB中的數據寫入函數dlmwrite

 

dlmwrite

 

功能簡介

將矩陣寫入ASCII分隔的文件。 

使用方法

1.dlmwrite(filename, M)

   使用默認的分隔符(')將矩陣M寫入ASCII格式的文件中。在目標文件filname中,數據是從第一行的第一列開始寫的。輸入的filename是使用單引號括起來的字符串。 matlab

2.dlmwrite(filename, M, 'D') matabc

  將矩陣M寫入一個ASCII格式的文件中,使用分隔符D來分割矩陣的元素。在目標文件filname中,數據是從第一行的第一列開始寫的。逗號'是默認的分隔符,使用\t來產生制表符分割的文件。

 

3.dlmwrite(filename, M, 'D', R, C)

 

將矩陣M寫入一個ASCII格式的文件中,使用分隔符D來分割矩陣的元素。在目標文件filname中,數據是從第R行的第C列開始寫的,R和C從0開始,因此R=0,C=0指定了文件中的第一個數值,即左上角的位置。 matabc

4.dlmwrite(filename, M, 'attrib1', value1, 'attrib2', value2, ...) matabc

  是下面所示的替代語法,在其中用戶可以在參數列表中指定多個屬性-數值對。每個屬性后面必須跟一個相應的值(見下表)。
matabc

 

 屬性值  
 delimiter  分隔符的字符串,用於分割矩陣的元素
 newline  每行終止使用字符(S)(見下表) matlab
 roffset Offset,在目標文件中矩陣數據開始寫的行,offset 是基於0的
為零。
 coffset  Offset在目標文件中矩陣數據開始寫的行,offset是基於0的 matlab
 precision  將數據寫入到文件所使用的數值精度。指定有效位數或C風格的格式化字符串%開始,如'%10.5f'的數量。

 

此表顯示的值時可以使用換行設置屬性。

 

 

 行終止  描述
 'pc'  'pc'終結(意味着回車/換行符(CR/LF))
 'unix'  'unix' 終結(意味着換行符(LF))

 


5.dlmwrite(filename, M, '-append') matabc

 將矩陣數據追加到文件的末尾。如果你不指定''-append',dlmwrite覆蓋文件中的任何現有數據。

7.dlmwrite(filename, M, '-append', attribute-value list) 
接受一個屬性值對列表。用戶可以將'-append'標志放在屬性-數值對之間,但不能放在屬性和它的值的中間。matabc
備注

生成的文件是可讀的電子表格程序。或者,如果您的系統為Windows安裝Excel,您可以創建一個電子表格使用xlswrite。

該dlmwrite函數不接受輸CELLM要導出一個單元格數組中只包含數字數據,使用cell2mat矩陣轉換為數字的單元格,然后再調用dlmwrite數組。對於其他情況下,使用低級別的導出功能。欲了解更多信息,請參閱導出到一個單元格數組文本文件在MATLAB數據導入和導出文件。 

 

應用舉例

示例1

輸出矩陣M到使用制表符分割的文件,使用6個有效數字精度: 
dlmwrite('myfile.txt', M, 'delimiter', '\t', ...
'precision', 6)
type myfile.txt

matlab



0.893898 0.284409 0.582792 0.432907
0.199138 0.469224 0.423496 0.22595
0.298723 0.0647811 0.515512 0.579807
0.661443 0.988335 0.333951 0.760365 
matlab
例2

輸出矩陣M到一個使用6位十進制長度和傳統的用於PC終止符的文件: 
dlmwrite('myfile.txt', m, 'precision', '%.6f', ...
'newline', 'pc')
type myfile.txt

16.000000,2.000000,3.000000,13.000000 matlab
5.000000,11.000000,10.000000,8.000000
9.000000,7.000000,6.000000,12.000000
4.000000,14.000000,15.000000,1.000000 

matlab
例3

輸出矩陣M到一個文件,然后追加一個另外的矩陣到第一個矩陣下方的隔一行處:
M = magic(3);
dlmwrite('myfile.txt', [M*5 M/5], ' ')

dlmwrite('myfile.txt', rand(3), '-append', ...

matabc

'roffset', 1, 'delimiter', ' ')

type myfile.txt

40 5 30 1.6 0.2 1.2
15 25 35 0.6 1 1.4
20 45 10 0.8 1.8 0.4

0.81472 0.91338 0.2785
0.90579 0.63236 0.54688
0.12699 0.09754 0.95751 

當dlmread從文件中導入這兩個矩陣時,小的矩陣使用0補齊:   matlab

dlmread('myfile.txt')
40.0000 5.0000 30.0000 1.6000 0.2000 1.2000
15.0000 25.0000 35.0000 0.6000 1.0000 1.4000
20.0000 45.0000 10.0000 0.8000 1.8000 0.4000
0.8147 0.9134 0.2785 0 0 0
0.9058 0.6324 0.54


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM