【发布时间】:2014-04-07 03:43:43
【问题描述】:
我知道 matlab 矩阵可以通过某些方式加载到 C++ 程序中,而这些方式似乎都不高效或方便。 我看到其他人修改了'.mat'文件的标题,然后可以直接将它加载到带有犰狳的C++程序中。
有人知道如何修改头文件吗?
这不仅仅是将 matlab '.mat' 文件保存为 ascii 格式。加载时间和存储空间大于二进制格式。 要存储一个 2GB 的二进制 mat 文件,我至少需要 20GB 来以 ASCII 格式存储它。 加载 100MB 二进制 mat 文件需要不到 1 秒,加载相同大小的 ASCII 文本数据需要更长的时间。
我不认为将 matlab mat 文件保存为 ASCII 格式并将其加载到犰狳中是一个很好的解决方案。
【问题讨论】:
-
如果您有 HDF5 库,请配置 Armadillo 以使用它。然后在 Matlab 中以 HDF5 格式保存矩阵,犰狳(启用 HDF5)应该能够读取。另一种选择是使用 MATIO 库来读取 Matlab 文件:sourceforge.net/projects/matio
-
另外,您可以将您的 C++ 程序构建为 Matlab Executable (MEX)。 Matlab 将其变量传递给每个引用的 mex 函数。