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

问题描述 投票:3回答:2

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

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

但我想让他们在没有“电子记谱法”的情况下保存,而不是所有的数字。是否有捷径可寻?

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

matlab file-io text-files number-formatting
2个回答
10
投票

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

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

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


3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.