我正在写一个文件对象的表示。它遵循这种简单的格式
<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做到这一点。
答案 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