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