我必须处理一个最大 2GB 的大 CSV 文件。更具体地说,我必须将所有这些数据上传到 mySQL 数据库,但在我必须对此进行一些计算之前,所以我需要在 MATLAB 中完成所有这些操作(我的主管也想在 MATLAB 中完成,因为他熟悉MATLAB:()。
知道如何处理这些大文件吗?
你可能应该使用textscan http://www.mathworks.com/help/techdoc/ref/textscan.html分块读取数据然后进行处理。这可能比一次读取一行更有效。例如,如果您有 3 列数据,您可以这样做:
filename = 'fname.csv';
[fh, errMsg] = fopen( filename, 'rt' );
if fh == -1, error( 'couldn''t open file: %s: %s', filename, errMsg ); end
N = 100; % read 100 rows at a time
while ~feof( fh )
c = textscan( fh, '%f %f %f', N, 'Delimiter', ',' );
doStuff(c);
end
EDIT
如今(R2014b 及更高版本),使用datastore http://www.mathworks.com/help/matlab/ref/datastore.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)