2011-10-11 69 views
5

我需要將一些MATLAB代碼轉換爲C++。我正在使用Visual Studio 2010並安裝了MATLAB編譯器。我想知道如何去做這件事。將Matlab轉換爲C++

另外,當我發佈我的項目時,最終用戶將不得不通過MATLAB安裝任何東西? (但情況並非如此)

回答

3

您可以將compile Matlab scripts轉換爲獨立的可執行文件,但我不熟悉Matlab工具將Matlab代碼轉換爲Visual C++代碼。您可以可以使用Simulink Coder(以前稱爲Real-Time Workshop)將Matlab代碼轉換爲C或C++,它可以從Mathworks作爲單獨的產品獲得。

要運行獨立的可執行文件,用戶必須安裝Matlab Compiler Runtime。從Matlab Compiler web page

可執行文件和庫與MATLAB編譯器產品上創建使用運行時引擎調用Matlab編譯器運行時(MCR)。 MCR提供MATLAB編譯器,可與您的應用程序一起發佈,並可免費部署。

+0

很久很久以前,MATLAB編譯器用於將MATLAB代碼轉換爲C,但它在一段時間內還沒有這樣做。現在,它只是將(* .m)MATLAB源文件轉換爲混淆的預解析格式(.p),並將其打包,以便它可以作爲獨立可執行文件運行,也可以從其他程序調用。無論哪種方式,運行它的目標機器都需要安裝從應用程序開發的MATLAB版本開始的MCR。 –

+1

「但我不認爲有Matlab工具將Matlab代碼轉換爲C++或Visual C++代碼」-Misinformation:有這樣的Matlab工具,它被稱爲實時工作坊。但是,這是Matlab編譯器的獨立產品,需要不同的許可證。 – learnvst

+1

@learnvst - 感謝您的評論,我更新了答案。 – eykanal

0

你的另一個選擇是使用MATLAB Engine。它可能不適用於實時應用程序,但除此之外它非常好。你基本上從C++調用MATLAB函數。數字(圖)將顯示,就像您運行本地MATLAB一樣。程序啓動時,會創建一個MATLAB控制檯。

2

您不會擺脫Matlab運行時。我經常遇到使用Matlab編譯器的問題。它基本上就像是一個Matlab運行庫的包裝器,生成笨拙的代碼,並且引入了許多部署問題。 C替代品...?我找不到任何東西。所以我最近切換到ilnumerics,就像C#中的Matlab一樣 - 速度更快,不需要翻譯。到目前爲止它效果很好,因爲我們仍然使用ASP.NET,從而避免了語言之間的跳躍,並且可以直接使用數字化的3d圖。