2013-07-31 75 views
0

有一个Matlab函数(h5write),它允许用户以hdf5格式编写输出文件。这似乎很好地使用Matlab环境和Matlab文件。但是,当我尝试从Matlab文件中生成C++代码时,会出现转换错误。看来,代码生成器(Matlab编码器)不能将h5write操作转换为C++代码。Matlab到C++代码生成(hdf5格式)

有什么办法可以解决这个问题吗?效率在这里也很重要,因为生成的C++可执行文件需要存储的数据集相当大。如果有人能帮助我,这会让我的一天! :-)

回答

3

MATLAB当前提供了一个接口,用于将h5write的代码转换为C++代码。这就是说,你可以使用MATLAB编译器来构建一个可执行文件或DLL。你可以在你的C++代码中使用它,但你总是需要MCR。如果空间不是一个限制,你可以这样做。否则,您可以使用HDF5 API(http://www.hdfgroup.org/HDF5/doc/cpplus_RM/)并编写用于写入HDF5文件格式的代码,然后使用MATLAB编码器进行链接和编译。

+0

非常感谢您的回答!但是,那是哪个接口?你也许知道为什么当我尝试使用Matlab编码器生成C++代码时,为什么在h5write操作中出现转换错误? – user1186155

+0

我会先回答第二部分。截至目前,MATLAB Coder尚未为此功能启用代码生成功能。只有这个小子集启用[链接](http://www.mathworks.com/help/simulink/ug/functions-supported-for-code-generation-alphabetical-list.html)。但是,如果您需要支持,请联系技术支持[链接](http://www.mathworks.com/support/contact_us/index.html),他们会将请求转发给开发人员。要回答第一个问题,请尝试使用其中一个示例[链接](http://www.hdfgroup.org/HDF5/doc/cpplus_RM/writedata_8cpp-example.html)。 –