2014-10-07 79 views
0

我需要讀取一個txt數據集並通過matlab做一些分析。 txt文件的結構是這樣的:將矩陣結構中的txt數據集加載到matlab中

ID流派AgeScale 1M的20-26

2 F 18-25

因此,我希望加載這個txt文件並建立一個矩陣。我想知道是否有人可以幫助我。我使用fopen函數,但它給了我一個單獨的數組而不是一個有3列的矩陣。

+0

您是否試過['readtable'](http://www.mathworks.com/help/matlab/ref/readtable.html)函數? – Dan 2014-10-07 12:05:59

回答

0

MATLAB有一個交互式數據導入器。只需在命令窗口中鍵入uiimport。它允許你:

  • 根據標題命名變量,如示例中所示。您也可以手動更改它們。
  • 指定變量(列)類型,例如數字,字符串單元陣列,等
  • 自動生成下次使用的導入腳本(如果需要)

如果它爲你工作那麼恭喜你,你不需要浪費時間寫一個數據導入腳本:)

+0

你是國王。非常感謝你親愛的XMO。 – HimanAB 2014-10-08 14:21:24

+0

非常歡迎:)如果您覺得您的問題已解決,您可以將此答案標記爲可接受。這完全取決於你。 – xmo 2014-10-08 15:03:08

0

函數fopen只返回文件ID而不返回文件的內容。打開文件後,使用文件ID逐行讀取,然後使用空格作爲分隔符分隔每行strsplit

這裏是這樣做的一個簡單的方法:

fid = fopen('textfile.txt'); 

tline = fgetl(fid); 
n = 1; 
while ischar(tline)   
    data(n,:) = strsplit(tline(1:end-1),' '); 
    n=n+1; 
    tline = fgetl(fid); 
end 

fclose(fid); 

請記住,矩陣數據類型爲字符串,而不是數字,所以如果你想使用你的數據集的數值,你」我們需要看看函數str2numstr2double in newer versions)和strtok用分隔符' - '分割AgeScale字符串。