10

我有一些数据想保存到 MAT 文件中(版本 4 或 5,或任何版本,就此而言)。问题:我想在不使用 matlab 库的情况下做到这一点,因为这段代码不需要在带有 matlab 的机器上运行。我的程序使用 Java 和 C++,因此任何现有的以这些语言实现这一目标的库都可以帮助我......

我做了一些研究,但没有在 Java/C++ 中找到任何东西。但是,我发现 python 上的 scipy 使用mio4.pyor实现了这一点mio5.py。我考虑过在 java 或 C++ 上实现它,但这似乎有点超出我的时间安排。

所以问题是:Java 或 C/C++ 中是否有任何库允许在不使用 Matlab 库的情况下保存 MAT 文件?

非常感谢

4

2 回答 2

12

C: matio
Java: jmatio
(我真的很想,所以我会,告诉你学习谷歌)

fwrite但实际上,如果您不需要处理一些更复杂的东西(嵌套结构、类、函数、稀疏矩阵等),使用它编写 matfile 并不难。
请参阅: http: //www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf

于 2010-04-23T17:12:02.987 回答
5

从版本 7 开始的 MAT 文件是基于 HDF5 的。我记得他们使用了一些相当有趣的约定,但是您也许可以对您的需要进行逆向工程。肯定有适用于 Java 和 C++ 的 HDF5 编写库。

沿着这些思路,Matlab 可以读/写几种标准格式,包括 HDF5。将数据写入“标准”HDF5 并将其读入 Matlab 中所需的数据结构可能是最简单的。

于 2010-04-23T16:57:29.920 回答