我在Matlab上上傳文件時遇到了一些麻煩。在使用文件菜單下的「加載數據」選項或使用命令之前,我已經多次加載文本文件。我正在嘗試閱讀的文件有列標籤,數字數據和前三列由文本數據組成。當我試圖上傳文件時,它表示該文件只包含一列,並將所有信息上傳到一列而不是六列。在文本文件中,列由標籤分隔,我將分隔符設置爲標籤。Matlab不能讀取文本文件
有沒有人有任何想法,爲什麼它會將信息上傳到一列而不是在單獨的列?
謝謝!
我在Matlab上上傳文件時遇到了一些麻煩。在使用文件菜單下的「加載數據」選項或使用命令之前,我已經多次加載文本文件。我正在嘗試閱讀的文件有列標籤,數字數據和前三列由文本數據組成。當我試圖上傳文件時,它表示該文件只包含一列,並將所有信息上傳到一列而不是六列。在文本文件中,列由標籤分隔,我將分隔符設置爲標籤。Matlab不能讀取文本文件
有沒有人有任何想法,爲什麼它會將信息上傳到一列而不是在單獨的列?
謝謝!
從你關於你的文本文件的我猜它有以下形式的形狀提供的詳細信息:
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。
Thanks @ChocoPouce!我曾嘗試過,但由於數據太多(或者IDK爲什麼),我的電腦會說沒有更多的內存空間。 – astudent
你試過['importdata'](http://www.mathworks.com/help/matlab/ref/importdata.html)嗎?然而,前三個文本列最終會出現在結果的「textdata」字段中,但您可以提取它們。 – pm89
是的,我曾嘗試importdata,它仍然無法正常工作。 – astudent