Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中大单元阵列保存不成功_Matlab_Save - Fatal编程技术网

matlab中大单元阵列保存不成功

matlab中大单元阵列保存不成功,matlab,save,Matlab,Save,我正在Windows7 64位环境中使用Matlab2009b 我无法使用v7.3开关保存大小为2.5GB的单元格数组,但对于大小为6 GB的数组结构(仅包含双值),保存成功。请告诉我可以尝试的替代方案 什么在起作用 我能够在工作区中成功保存以下变量 >> whos Name Size Bytes Class Attributes master_data 1x159 6296

我正在Windows7 64位环境中使用Matlab2009b

我无法使用v7.3开关保存大小为2.5GB的单元格数组,但对于大小为6 GB的数组结构(仅包含双值),保存成功。请告诉我可以尝试的替代方案

什么在起作用

我能够在工作区中成功保存以下变量

>> 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中使用一些快速而肮脏的东西。