使用 HDF5 保存要在 C++ 中读取的 MATLAB 结构

Posted

技术标签:

【中文标题】使用 HDF5 保存要在 C++ 中读取的 MATLAB 结构【英文标题】:Saving MATLAB structures to be read in C++ using HDF5 【发布时间】:2015-11-14 07:41:23 【问题描述】:

我正在尝试编写一个 HDF5 文件,该文件将保存在 MATLAB 中创建的一堆结构,然后将在 C++ 中读取这些结构。这些结构包含不一定是数字的数据,例如字符串、元胞数组和子结构,因此使用 hdf5write 已被淘汰。

但是,使用参数'-v7.3' 调用save 会保存到HDF5,那么是否可以在C++/C 中读取这些文件并提取数据?这是个好主意吗?

为每个结构创建自定义数据类型并编写自定义 HDF5 编写器是否更好?

【问题讨论】:

【参考方案1】:

如果您的目标是在 C/C++ 和 MATLAB 之间共享通用文件格式,您可以使用 matio library,它可以读取/写入您直接从 MATLAB 读取/写入的相同 .mat 格式,包括单元格,结构等。

【讨论】:

以上是关于使用 HDF5 保存要在 C++ 中读取的 MATLAB 结构的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C++ API 在 HDF5 文件中写入/读取锯齿状数组?

在 Matlab 中转置 Python 创建的 HDF5 数据集

如何从 C++ 中的 hdf5 文件中读取数据块?

(C++) 在 HDF5 中编写数据库

检查失败:如何在深层使用 hdf5 数据层?

C++的opencv里怎么读取Mat图像中特定坐标的灰度值?