2

我有几个看起来像这样的 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)声称可以做到这一点。然而,当我调用这个函数时,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 正确解析我的数据?

4

2 回答 2

1

你也可以dlmread这样使用:

dlmread('filename.txt', ' ', 2, 0)
于 2012-05-21T13:52:03.623 回答
0

>> help importdata has the following note:

如果 importdata 识别出文件扩展名,它会调用 MATLAB 帮助函数,用于导入关联的文件格式。否则,importdata 会将文件解释为分隔的 ASCII 文件。

也许 .txt 触发 importdata 以将文件作为文本加载。但在我的 MATLAB 版本中,importdata 可以很好地处理名为 .txt 的文件中的示例数据。你用的是什么版本?

如果一切都失败了,您可以使用 MATLAB 内部的 copyfile 进行重命名

fname = 'sample.txt';
barename = regexprep(fname, '\.txt$', '');
copyfile(fname, barename);
importdata(barename, ' ', 2);
于 2012-05-21T13:29:59.570 回答