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

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

编辑:谢谢!这工作得很好。抱歉,但我想我使用回滚弄乱了您的编辑。

4

2 回答 2

10

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

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

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

于 2009-05-29T16:00:29.710 回答
3

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

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

于 2009-05-29T16:42:42.877 回答