在Matlab中无法保存真正的大矩阵

4 matlab save mat-file

我有一个大数组(1024x1024x360),我想将它保存到mat文件.我试试的时候

A=rand(1024,1024,360)
save('filename.mat','A');
Run Code Online (Sandbox Code Playgroud)

变量是在工作区中创建的,文件正在创建,但它仍然是空的......我在Win7-64机器上使用Matlab 2012a,为什么会这样?

nho*_*owe 6

早期版本的Matlab无法保存大于2 GB的变量.即使在较新版本的Matlab上,您的默认保存文件格式也可能设置为较旧的类型; 我自己安装的R2013a似乎已预设到v7,这不会保存任何大的东西.您有两种选择:使用额外标志指定此文件的格式:

save('filename.mat','A','-v7.3');
Run Code Online (Sandbox Code Playgroud)

或者通过运行preferences并查看常规下的MAT文件区域来更改所有保存文件的默认值.

  • +1只是要注意v7.3基于HDF5格式,不同于以前的版本:[MATLAB:.mat版本之间的差异](http://stackoverflow.com/questions/4950630/matlab-differences-between-mat-versions) (3认同)