2017-02-14 195 views
0

所有我認爲文本文件可能是將Matlab輸出導出爲文本文件的最簡單方式(因爲csvwrite僅支持數值,而xlswrite在處理日期/時間時可能很痛苦)。我的數據由日期,時間戳,字符串(股票名稱),值(股票價值)組成。數據也有列名作爲標題。 請問,我怎樣才能將我的數據導出到文本文件中(然後我將其讀取爲csv)。我做了大量的閱讀,但我仍然陷入困境。將數據從Matlab導出到文本文件

對初學者有任何建議嗎?非常感謝

回答

0

fprintf()是你的朋友。

不過,我要在這裏寫下來一個小例子:

寫的指數函數的短表,稱爲exp.txt

x = 0:.1:1; 
A = [x; exp(x)]; 

fileID = fopen('exp.txt','w'); 
fprintf(fileID,'%6s %12s\n','x','exp(x)'); 
fprintf(fileID,'%6.2f %12.8f\n',A); 
fclose(fileID); 

第一次調用到一個文本文件fprintf打印標題文本x和exp(x),第二個調用打印變量A的值。

如果您打算使用Microsoft®記事本讀取文件,請使用'\ r \ n'而不是'\ n '轉移到新的路線。例如,更換調用以下文fprintf中:

fprintf(fileID,'%6s %12s\r\n','x','exp(x)'); 
fprintf(fileID,'%6.2f %12.8f\r\n',A); 

MATLAB®導入功能,所有的UNIX®應用程序,以及Microsoft Word和寫字板承認「\ n」作爲換行符指標。

使用type命令查看文件的內容。

type exp.txt 

    x  exp(x) 
    0.00 1.00000000 
    0.10 1.10517092 
    0.20 1.22140276 
    0.30 1.34985881 
    0.40 1.49182470 
    0.50 1.64872127 
    0.60 1.82211880 
    0.70 2.01375271 
    0.80 2.22554093 
    0.90 2.45960311 
    1.00 2.71828183 

Here你可以找到更多的信息和幾個例子。

+0

謝謝Leos313。我在matlab幫助中看到了這個例子,我嘗試應用它,但它得到一個錯誤,說「錯誤使用fprintf 無法將'table'類的對象轉換爲'double'。」任何想法?另外我如何處理字符串,日期和時間戳使用fprint?非常感謝 –

+0

分享你的代碼,所以我們可以嘗試複製錯誤。在任何情況下,您似乎都在使用「%f」來打印雙精度值或浮點值,但數據不是雙精度值。請仔細閱讀您的工作區,並使用fprintf指令的確切選項。 – Leos313