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
函数将所有数字的向量stress
和fwrite()
写入文件。当我运行上面的代码时,没有报告错误,但是当我查看文件时,它们不是数字,而是完全混乱中的所有丑陋符号。我正确使用fwrite
吗?我该如何解决这个问题?
我使用format long
,因为我需要一些高精度。
答案 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命令窗口中显示数字的方式。