Matlab输出矩阵到文件的格式合理

时间:2016-11-01 20:05:08

标签: python matlab string-formatting

我正在写一个文件对象的表示。它遵循这种简单的格式

<key>:<value>\n

现在我有多个矩阵要输出,但标准方式看起来非常难看

f = open('somefile', 'w+t');
fprintf(f,'size:');
fprintf(f,'%+.4f\n', someObject.size);

但这只会导致像

这样的无法读取的文件
size: 5.1234
3.1234
2.5421
232332

等等数百行。如果我在python / numpy ( f.write("size: " + str(someObject.size) + "\n")中这样做,我会得到像

这样的可读内容
size:[[5.1234 3.1234 2.5421 232322]
[5.1234 3.1234 2.5421 232322]....

保留形状并正确对齐。我如何用matlab做到这一点。

1 个答案:

答案 0 :(得分:1)

您需要拆分fprintf命令。使用辅助功能:

function numpy_like_fprintf(fid, format_single_element, values)
fprintf(fid, '[');
fprintf(fid, [' ',format_single_element], values);
fprintf(fid, ' ]\n');

现在你可以

numpy_like_fprintf(f, '%+.4f', someObject.size);

或者,您可以使用num2str  将数组转换为字符串,就像python&#39; s str() 请注意,您可以格式化数字在num2str

中转换为字符串的方式