2013-06-26 105 views
0

我在Matlab上上傳文件時遇到了一些麻煩。在使用文件菜單下的「加載數據」選項或使用命令之前,我已經多次加載文本文件。我正在嘗試閱讀的文件有列標籤,數字數據和前三列由文本數據組成。當我試圖上傳文件時,它表示該文件只包含一列,並將所有信息上傳到一列而不是六列。在文本文件中,列由標籤分隔,我將分隔符設置爲標籤。Matlab不能讀取文本文件

有沒有人有任何想法,爲什麼它會將信息上傳到一列而不是在單獨的列?

謝謝!

+1

你試過['importdata'](http://www.mathworks.com/help/matlab/ref/importdata.html)嗎?然而,前三個文本列最終會出現在結果的「textdata」字段中,但您可以提取它們。 – pm89

+0

是的,我曾嘗試importdata,它仍然無法正常工作。 – astudent

回答

0

從你關於你的文本文件的我猜它有以下形式的形狀提供的詳細信息:

label1 info1 text1 1 1.1 3.1 
label2 info2 text2 2 2.1 3.2 
lebel3 info3 text3 3 3.1 3.3 
... 

您可以使用一個循環和fscanf功能和簡單的循環加載所有這些數據。

如果N是下面的代碼可能會爲你工作,你的文本文件的行數:

f=fopen('test.txt'); 

for k=1:N 
    for i=1:3 
     a{k,i} = fscanf(f,'%s',1); 
    end 
b(k,:) = fscanf(f,['%f' '%f' '%f'],3); 
end 

fclose(f); 

然後,你將有一個字符串a的一個單元陣列:

a = 

'label1' 'info1' 'text1' 
'label2' 'info2' 'text2' 
'lebel3' 'info3' 'text3' 

並且有一個數字數據陣列b

b = 

1.0000 1.1000 3.1000 
2.0000 2.1000 3.2000 
3.0000 3.1000 3.3000 

爲了獲得更多信息,我建議您閱讀這個page

+0

Thanks @ChocoPouce!我曾嘗試過,但由於數據太多(或者IDK爲什麼),我的電腦會說沒有更多的內存空間。 – astudent