如何将数据保存为给定格式的文本文件?

时间:2009-05-29 15:55:35

标签: matlab file-io text-files number-formatting

我想将矩阵保存到文本文件中,所以我可以通过其他程序读取它。现在我使用:

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

但我想让他们在没有“电子记谱法”的情况下保存,而不是所有的数字。有一个简单的方法吗?

编辑:谢谢!这很好用。抱歉,我认为我使用回滚搞砸了你的编辑。

2 个答案:

答案 0 :(得分:10)

我会使用fprintf函数,它允许您自己定义输出数据的格式。例如:

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

这将在小数点后输出6位精度的矩阵A.请注意,您还必须使用fopenfclose函数。

答案 1 :(得分:3)

Ditto gnovice的解决方案,如果你需要性能&自定义格式。

dlmwrite为您提供格式化控件(全局,而非每个字段)。但它的性能较差。几年前我进行了测试,dlmwrite比fopen / fprintf / fclose解决方案慢了5-10倍。 (编辑:我指的是大型矩阵,比如15x10000矩阵)