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保存忽略大单元格数组的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中连接单元格数组的向量

在单元格中使用字符串保存 Matlab 变量

MATLAB 中的单元格和数组的连接和索引有何不同?

Excel 数组,如果左侧相邻单元格为空白则忽略

在matlab中对单元格数组进行分类

excel中运用数组判断逻辑时,如何忽略空单元格却不忽略0.