2012-05-21 303 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); 
相关问题