如何解决超出内存容量的单元阵列?

时间:2015-06-06 10:39:17

标签: matlab memory-management loading cell-array memory-efficient

当我将数据量达到35 GB的计量数据(GRIB文件)读入matlab单元阵列时,我的内存(RAM)不足。

当我加载大数据集时,如何解决RAM限制问题?

我试图预先分配单元格数组,但这没有用。它停止在70%的数据集加载。

这是错误的FOR循环:

%加载grib文件

for ii = 1:number_files
    waitbar(ii/number_files,h);
    file_name = [fname,'\',num2str(ii),'.grb'];
    grib_struct = read_grib([file_name],-1);
    Temp{ii} = single(grib_struct(1,1).fltarray);
    Rad_direct{ii} = single(grib_struct(1,2).fltarray);
    Rad_diff{ii} = single(grib_struct(1,3).fltarray);
    fclose('all');
end   

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用matfile命令直接在文件系统上工作。它将您输入的每个数据直接存储在文件系统中。它会很慢,但有可能。