首页 > 解决方案 > 将数值数据写入文本文件:matlab to python

问题描述

在将这些 Matlab 指令转换为 Python 时,我需要一些帮助:

var = [1.222222 2.33333333 3.4444444];
fmt = [repmat(' %1.4e', 1, size(var, 2)), '\n'];

fid = fopen('myfile.txt','w');
fprintf(fid, fmt, var);
fclose(fid);

在文件中写道:

 1.2222e+00 2.3333e+00 3.4444e+00

特别是,就 repmat 而言,我知道我应该使用 tile,我不确定如何包含格式。

标签: pythonmatlab

解决方案


在 Matlab 中,您可以通过这种方式格式化整个数组。在 Python 中,它要简单得多。您可以使用np.savetxt单一格式保存整个数组:

var = ...
np.savetxt(file, var, fmt='%14e')

File 可以是文件名或文件句柄。因此,例如,如果您想检查输出,只需传入sys.stdout第一个参数即可。


推荐阅读