在 C/C++ 中调用 MATLAB API
Posted
技术标签:
【中文标题】在 C/C++ 中调用 MATLAB API【英文标题】:Call MATLAB APIs in C/C++ 【发布时间】:2009-11-05 01:39:14 【问题描述】:我刚刚从某处听说,对于数值计算,“MATLAB 确实提供了一些用户友好的 API。如果您在 C/C++ 代码中调用这些 API,您可以显着加快计算速度。”
但是我在http://www.mathworks.com/support/tech-notes/1600/1622.html和http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/bp_kqh7.html这样的MATLAB文档中没有找到这样的信息。我从这些网站上学到的只是 MATLAB 可以通过 Matlab 引擎在 C 和 C++ 中调用,或者通过 mcc 将 M 文件编译到库中。他们没有提到任何可以在 C/C++ 中调用的内置数值 MATLAB API。
有人可以澄清一下吗?
感谢和问候!
【问题讨论】:
啊,仔细阅读你的问题,我看到你不想使用Engine。据我所知,没有直接的数字 API 可供调用。 谢谢。是的,这就是我的意思。 【参考方案1】:您需要“引擎”例程。这允许您从 C 启动后台 MATLAB 进程并对其执行计算:relevant MATLAB documentation。
它工作得很好,看看例子。我想说让它工作最烦人的事情是在 C 和 MATLAB 之间编组数据。但是在做这种事情时,这总是一个问题。
【讨论】:
【参考方案2】:听起来您正在寻找嵌入式 matlab 工具箱或实时研讨会中的代码生成工具。
执行doc eml
并查找 LMS(最小均方)均衡器演示。
代码生成器非常好,它会给你一个生成静态库的生成文件。它很容易与您的独立 C/C++ 代码一起使用。
【讨论】:
【参考方案3】:quote 可能引用了一些东西,我假设它引用了MATLAB Compiler。所以从 MATLAB -> C++ 你可以使用编译器来构建独立的“更快”的应用程序。但是,在对改进进行速度测试时,我注意到它可以忽略不计。老实说,从一开始就用 C 编写工作可能要好得多,编译器生成的代码是意大利面条式的且非面向对象的。我还应该提到,这是对 Matlab 的一个昂贵的扩展。
您可以在自己的 c++ 项目中将 MCR 用作独立库 (details)...但使用 Numerical Recipes 可能会得到类似的结果。
免责声明:我在 2-3 年前使用过这个产品,现在情况可能会有所不同。
【讨论】:
以上是关于在 C/C++ 中调用 MATLAB API的主要内容,如果未能解决你的问题,请参考以下文章
是否可以通过在 matlab 中调用 c/c++ 代码来加速 matlab 绘图?