2016-10-11 71 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命令窗口。