Matlab之儲存/寫矩陣資料到文字(fprintf, save, dlmwrite)

Regnaiq發表於2017-06-20

1. fprintf儲存/寫矩陣資料到文字

注:fprintf的三次測試主體程式相同,只改變標藍色的第三行

  • a=[1 2 3 4;11 22 33 44;111 222 333 444]; 
    fid = fopen('test.txt', 'wt'); %-t模式按照文字而非二進位制模式讀寫 
    fprintf(fid,'%d ', a); 
    fclose(fid); 
    type test.txt

執行結果:1 11 111 2 22 222 3 33 333 4 44 444

可見,fprintf是按照矩陣列儲存。

  • fprintf(fid,'%5.1f ', a‘); %將a轉置,並按浮點數儲存

執行結果:1.0? 11.0 111.0?? 2.0? 22.0 222.0?? 3.0? 33.0 333.0?? 4.0? 44.0 444.0

  • fprintf(fid,[repmat('%d\t', 1, size(a,2)), '\n'], a');%轉置並適時(寫完一列後)新增換行

執行結果:

1      2      3      4
11    22    33    44
111  222  333  444

2. save儲存/寫矩陣資料到文字

  • save a_save.txt -ascii a 
    type a_save.txt

執行結果:

1.0000000e+000  2.0000000e+000  3.0000000e+000  4.0000000e+000 
1.1000000e+001  2.2000000e+001  3.3000000e+001  4.4000000e+001 
1.1100000e+002  2.2200000e+002  3.3300000e+002  4.4400000e+002

3. dlmwrite儲存/寫矩陣資料到文字

  • dlmwrite('a_dlmwrite.txt',a,'delimiter', '\t','precision','%6.2f') 
    type a_dlmwrite.txt

執行結果:

    1.00      2.00      3.00      4.00 
  11.00    22.00    33.00    44.00 
111.00 222.00 333.00  444.00

總結:

 save儲存的資料是以科學計數法的方式儲存的;fprintf和dlmwrite則是可以選擇儲存資料的方式,fprintf的格式設定跟C語言中的用法一致,dlmwrite預設對資料中的小數就採用浮點數儲存,整數就採用整型儲存形式;使用時,可根據需要設定有效位數。而fprintf是按照矩陣列儲存,使用時需特別注意。


轉載自:http://pattop.blog.163.com/blog/static/1355283822012514115126619/

相關文章