matlab中大单元阵列保存不成功
我正在Windows7 64位环境中使用Matlab2009b 我无法使用v7.3开关保存大小为2.5GB的单元格数组,但对于大小为6 GB的数组结构(仅包含双值),保存成功。请告诉我可以尝试的替代方案 什么在起作用 我能够在工作区中成功保存以下变量matlab中大单元阵列保存不成功,matlab,save,Matlab,Save,我正在Windows7 64位环境中使用Matlab2009b 我无法使用v7.3开关保存大小为2.5GB的单元格数组,但对于大小为6 GB的数组结构(仅包含双值),保存成功。请告诉我可以尝试的替代方案 什么在起作用 我能够在工作区中成功保存以下变量 >> whos Name Size Bytes Class Attributes master_data 1x159 6296
>> whos
Name Size Bytes Class Attributes
master_data 1x159 6296489360 struct
>> save('arrayOfStruct.mat','-v7.3')
这里的主数据是一个159结构的数组。这159个结构中的每一个都有5个100万个双倍值的数组。文件系统中保存了594 MB的Mat文件
什么不起作用
我无法保存包含字符串、双精度和双精度数组的单元格数组
>> whos
Name Size Bytes Class Attributes
result_combined 57888x100 2544467328 cell
>> save('cellArray.mat','-v7.3');
当我执行save命令时,文件系统中会生成一个大小为530 MB的cellArray.mat文件,但提示永远不会返回到matlab(我已经等待了4个多小时,并在重新启动计算机后运行此命令)。如果在matlab程序等待提示返回时终止该程序,则生成的ceralray.mat将不可用,因为matlab显示该文件已损坏,无法加载
请建议我可以尝试保存此变量结果的方法
注意
save命令在Matlab 2015a中成功运行。关于如何在Matlab2009b中工作的任何建议。我使用Matlab 2009b作为默认设置,不想迁移到2015a,因为它可能会破坏现有设置。禁用7.3开关是一个选项吗?否。变量大小超过2 GB。显然,这是2009b中的一个错误。我不需要测试它,但是一种方法是使用
matfile
函数。尝试保存一个空矩阵,然后在可写模式下使用matfile打开文件(请参阅帮助),然后将单元格添加到该文件matfile命令在2009b版本中不存在。它是从2011b()开始引入的。请提供任何其他建议。你是对的,因为mat文件实际上是HDF文件,我会尝试使用hdf5write
。但是,您必须编写自定义的读写例程。在这种情况下,对于mat文件,坚持使用matlab约定也没有多大意义,只需在香草HDF中使用一些快速而肮脏的东西。