2016-10-11 68 views
0
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); 

基本上我想要写矢量timeaxisstress,它们都是数字,成使用在Matlab fwrite()功能的文件的文件。当我运行上面的代码时,没有错误报告,但是当我看着这个文件时,它们不是数字,而是一团糟中所有丑陋的符号。我正确使用fwrite吗?我应该如何解决这个问题?的fwrite()函数给出了很多丑陋符号

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

回答

3

通过使用fwrite您正在将数字写入文件作为二进制文件这意味着一个普通的文本编辑器将不会正确显示它。

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

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

作为一个侧面说明,format long对输出到文件没有影响,一些只是如何显示在MATLAB命令窗口。