2014-02-16 54 views
-3

我想使用加載函數將100000 x 101數據文件導入到Matlab,但是我不需要數據文件中的第一列。所以我的問題是,是否有任何其他方式來忽略或刪除此列,而不僅僅是手動刪除列。先謝謝你。將數據文件導入到Matlab時忽略某些列

+3

什麼樣的數據?哪個函數用於導入? – Daniel

+0

數據全是數字,每列由空格分隔。我只是使用函數'load myfilename.dat'。我將使用這些數據來繪製使用HeatMap函數的熱圖,但我認爲這與問題無關 – apples92

回答

0

如果你想使用的功能load,它是唯一的出路

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

完美工作的乾杯 – apples92

0

在你的情況(基於文本文件)的任何方法必須在內部解析完整的文件,找到所有分隔符。有些功能可能會忽略某一列,但不值得付出努力,因爲速度不會增加。

使用二進制文件(例如mat),您可以在閱讀時跳過列。這裏數據的位置是已知的。

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找到