2009-05-29 81 views
3

我想將一個矩陣保存到一個文本文件中,所以我可以通過另一個程序讀取它。現在我用:如何以給定的格式將數據保存到文本文件?

save('output.txt', 'A','-ascii'); 

但這樣可以節省我的文件

6.7206983e+000 2.5896414e-001 
6.5710723e+000 4.9800797e-00 
6.3466334e+000 6.9721116e-001 
5.9975062e+000 1.3346614e+000 
6.0224439e+000 1.8127490e+000 
6.3466334e+000 2.0517928e+000 
6.3965087e+000 1.9721116e+000 

但我想有他們挽救,沒有「電子符號」,而不是所有的數字。是否有捷徑可尋?

編輯:謝謝!這工作得很好。對不起,但我想我通過使用回滾搞亂了你的編輯。

+0

沒問題,格式仍然看起來不錯......而且你得到了一個「清理」徽章! ;) – gnovice 2009-05-29 16:43:33

回答

10

我會用fprintf功能,這將允許您在定義自己是什麼格式的輸出數據,例如:

fid = fopen('output.txt', 'wt'); 
fprintf(fid,'%0.6f %0.6f\n', A.'); 
fclose(fid); 

這將輸出矩陣A與後的精度6個位數小數點。請注意,您還必須使用功能fopenfclose

+0

對於編輯者,請注意````代碼中需要將`A`轉置爲2×N矩陣,FPRINTF才能從列向列讀取。 – gnovice 2013-12-16 21:56:12

3

同上gnovice的解決方案,如果你需要性能&自定義格式。

dlmwrite爲您提供了一些控制(全局,而不是每場的基礎)的格式。但它的性能較差。幾年前我進行了測試,dlmwrite比fopen/fprintf/fclose解決方案慢5-10倍。 (編輯:我指的是大矩陣,如15x10000矩陣)

相關問題