2012-05-21 333 views
2

我有一個看起來像這樣幾個TXT文件:Matlab的IMPORTDATA忽略分隔符和nheaderlines以txt文件

Experiment ended at 5/8/12 10:00 AM 
Number of Tunings 9 
0 14.0 82 43.305 
1 34.142857142857146 95 23.432 
2 5.857142857142857 82 31.573 
3 37.42857142857143 83 22.387 
4 5.0 93 14.664 
...etc 

我希望加載這個數據使得前兩行被忽略,並且我得到基於列空格作爲分隔符,所以上面會變成:

0 14.0    82 43.305 
1 34.142857142857146 95 23.432 
2 5.857142857142857 82 31.573 
3 37.42857142857143 83 22.387 
4 5.0     93 14.664 

功能importdata(FILENAME, DELIM, NHEADERLINES),claimes做的正是這一點。然而,當我把這種功能與importfile('pathtofile', ' ', 2)我得到一個包含文件中的所有字符一個單一的字符串,所以像這樣的:

Experiment ended at 5/8/12 10:00 AM Number of Tunings 9 0 14.0 82 43.305 1 34.142857142857146 95 23.432 ...etc 

我怎麼IMPORTDATA正確解析我的數據?

+0

奇怪的是,當我重新命名文件從filenam.txt到只是文件名(所以沒有.txt擴展名)它似乎工作。我希望有另一種解決方法,因爲我有很多文件。 – SeeDoubleYou

+0

你嘗試過導入助手嗎?您可以交互式地輸入一個文件,然後讓它爲您生成neccesare命令。 – bdecaf

+0

unix/windows文件格式之間可能存在混合嗎?我想知道是否在重命名過程中,你做了這樣的事情... – PearsonArtPhoto

回答

1

您也可以使用dlmread這樣的:

dlmread('filename.txt', ' ', 2, 0) 
0

>> help importdata has the following note:

如果IMPORTDATA識別的文件擴展名,它調用MATLAB的輔助功能 設計導入相關的文件格式。否則, importdata將該文件解釋爲分隔的ASCII文件。

也許.txt觸發importdata以像文本一樣加載文件。但在我的MATLAB版本中,importdata可以在名爲.txt的文件中的示例數據上正常工作。你使用什麼版本?

如果一切都失敗了,你可以的CopyFile使用來自內部MATLAB做你的重命名

fname = 'sample.txt'; 
barename = regexprep(fname, '\.txt$', ''); 
copyfile(fname, barename); 
importdata(barename, ' ', 2); 
相關問題