2013-07-31 72 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)。 –