您应该使用textscan以块的形式读取数据然后进行处理.这可能比一次读取一行更有效.例如,如果您有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
Run Code Online (Sandbox Code Playgroud)
编辑
这些天(R2014b及更高版本),使用a更容易,也可能更有效datastore
.