Matlab保存忽略大单元格数组
Posted
技术标签:
【中文标题】Matlab保存忽略大单元格数组【英文标题】:Matlab save ignoring large cell arrays 【发布时间】:2015-10-18 15:01:32 【问题描述】:我正在尝试保存一个单元格数组,其中每个元素在单独保存时约为 500mb(这没有问题)。整个元胞数组大约有 10 个这样的元素。
使用 save 命令时,即使我明确尝试按变量名保存元胞数组,也根本不保存元胞数组。不会出现错误消息。生成的 .mat 文件根本不包含变量(或者在显式保存的情况下什么也不包含)。
有足够的可用磁盘空间。有人知道发生了什么吗?
编辑: 我正在使用以下方式保存命令:
save(filename)
或
save(filename, cellarrayname)
【问题讨论】:
你用的是什么版本的matlab?您使用的是什么版本的'mat'
格式?是否符合v7.3
标准?
我使用的是 2013a。在哪里可以查看 .mat 文件格式?
如何使用保存命令?请在您的问题中举一个小例子。
查看首选项->常规->MAT 文件
谢谢,默认设置是导致问题的 v7。我愿意接受这个作为答案。但是,这种保存方式似乎比保存单个零件要慢得多。这是正常行为吗?
【参考方案1】:
Matlab 的默认行为是以v7
格式保存,受文件大小限制。为了克服这个问题,您应该将默认行为更改为 v7.3
,它使用 hdf5 文件格式并且可以处理更大的文件。
要更改默认设置,请转到 文件 菜单 -> 首选项 -> 常规 -> MAT-Files em>:
(来源:undocumentedmatlab.com)
正如David's comment 所指出的,有关与v7.3
文件格式设置相关的性能问题,可以在this link 中找到更多信息。
【讨论】:
以上是关于Matlab保存忽略大单元格数组的主要内容,如果未能解决你的问题,请参考以下文章