fwrite()函数给出了一个带有许多丑陋符号的文件

时间:2016-10-11 01:43:28

标签: matlab fwrite

fid = fopen('stressVStime.txt','w');
format long;
timeaxis = zeros([1,1000]);
stress = zeros([1,1000]);
for n=1:1000
    some codes of calculation here...
    fwrite(fid, [timeaxis(n), stress(n)], 'float64');
end
fclose(fid);

基本上我想在Matlab中使用timeaxis函数将所有数字的向量stressfwrite()写入文件。当我运行上面的代码时,没有报告错误,但是当我查看文件时,它们不是数字,而是完全混乱中的所有丑陋符号。我正确使用fwrite吗?我该如何解决这个问题?

我使用format long,因为我需要一些高精度。

1 个答案:

答案 0 :(得分:3)

通过使用fwrite,您将数字写入文件作为二进制,这意味着普通文本编辑器将无法正确显示。

不要使用fwrite,而是考虑使用fprintf以人类可读的ASCII格式将数据写入文件。 %f格式说明符表示输入将是浮点数。

fid = fopen('stressVStime.txt','w');
fprintf(fid, '%f %f\n', [timeaxis; stress])
fclose(fid)

作为旁注,format long对文件的输出有 no 效果,只是在MATLAB命令窗口中显示数字的方式。