我有几个ASCII测试数据文件,其大小从100 MB到600 MB不等。两个问题(或者可能是一个掩盖另一个问题):
whos
编辑导入的变量时,它说可变大小为7.4 GB。事实上,即使在导入完成后,物理记忆仍然保持在接近冰点的90%。我尝试了以下内容:
data = struct;
count = 0;
while ~feof(fid)
count = count+1;
data_temp = textscan(fid, format, 100000, 'Delimiter', delimiter, 'MultipleDelimsAsOne', true,...
'EmptyValue' ,NaN, 'ReturnOnError', false);
data(count).blocks = data_temp;
clear data_temp
end
但它似乎没有帮助(也使用了行数)。我尝试了一种没有结构的类似方法,但只依赖于textscan
指针。差别不大。