2009-11-05 43 views
4

我刚刚从某处得知,对于数值计算,“MATLAB确实提供了一些用户友好的API,如果在C/C++代码中调用这些API,则可以显着加快计算速度。在C/C++中调用MATLAB API

但我没有在MATLAB文档中找到这样的信息,例如http://www.mathworks.com/support/tech-notes/1600/1622.htmlhttp://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/bp_kqh7.html。我从这些网站了解到,MATLAB可以通过Matlab引擎以C和C++的方式调用,或者通过mcc将M文件编译为库。他们没有提到任何可以在C/C++中调用的内置数值MATLAB API。

有人可以澄清?

感谢和问候!

+1

啊,仔细阅读你的问题,我发现你不想使用引擎。据我所知,没有直接的数值API可以调用。 –

+0

谢谢。是的,这就是我的意思。 – Tim

回答

4

你想要“引擎”例程。这允许你从C启动一个背景MATLAB过程,并在其上执行计算:relevant MATLAB documentation

它工作得很好,看看例子。我会说让它工作的最烦人的事情是编组C和MATLAB之间的数据。但是做这种事情总是一个问题。

0

这听起来像您正在寻找嵌入式matlab工具箱或实时工作室中的代码生成工具。

doc eml并寻找一个LMS(最小均方)均衡器演示。

代码生成器是相当不错的,它会给你一个构建静态库的make文件。使用独立的C/C++代码很容易。

0

可能有一些引用是引用的东西,我认为它指的是MATLAB Compiler。因此,从MATLAB - > C++,您可以使用编译器构建独立的“更快”的应用程序。但是,当速度测试改进时,我发现它可以忽略不计。老实说,从一开始就用C编写你的工作可能会好得多,编译器生成的代码是意大利面和非面向对象。我还应该提到这是对Matlab的一个昂贵的扩展。

您可以在自己的C++项目中使用MCR作为独立库(details)...但使用Numerical Recipes可能会得到类似的结果。

免责声明:我使用这个产品2-3年前,现在可能会有所不同。