2011-10-11 140 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图。