我必须处理最大 2GB 的大 CSV 文件。更具体地说,我必须将所有这些数据上传到 mySQL 数据库,但在我必须对此进行一些计算之前,所以我需要在 MATLAB 中做所有这些事情(我的主管也想在 MATLAB 中做,因为他只熟悉MATLAB :( ).
知道如何处理这些大文件吗?
最佳答案
你可能应该使用 textscan以 block 的形式读取数据,然后进行处理。这可能比一次读取一行更有效。例如,如果你有 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
编辑
如今(R2014b 及更高版本),使用 datastore
更容易也可能更高效.
关于mysql - 在 MATLAB 中处理大型 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702872/