将数据文件导入Matlab时忽略某些列

时间:2014-02-16 17:58:28

标签: matlab

我正在尝试使用加载功能将100000 x 101数据文件导入Matlab,但是我不需要数据文件中的第一列。所以我的问题是,除了手动删除列之外,还有其他方法可以忽略或删除此列。提前谢谢。

3 个答案:

答案 0 :(得分:0)

如果你想使用函数load,这是唯一的方法

load myfilename.dat; myfilename = myfilename(:,2:101);

答案 1 :(得分:0)

在您的情况下(基于文本的文件),任何方法都必须在内部解析整个文件以查找所有分隔符。某些功能可能会忽略列,但不值得努力,因为速度不会增加。

使用二进制文件(例如mat),您可以在阅读时跳过列。这里数据的位置是已知的。

答案 2 :(得分:0)

考虑到文件的大小,Matlab的load可能不是导入数据的最有效方法。以我在this SO-question的帖子为例。使用函数txt2mat可以使用命令

快速读取数据
%read data
DATA = txt2mat(filename, 'ReplaceChar', '. ');
%discard the first column
DATA = DATA[:,2:end]

当然,您已经阅读了不必要的数据,但txt2mat的速度应该可以克服这一开销。

txt2mat可以在http://www.mathworks.com/matlabcentral/fileexchange/18430-txt2mat

找到