如何从C语言调用MATLAB代码?

12

我有一些在MATLAB中绘制三角形的代码

我需要能够从我的C程序中执行此代码以生成这些点。

这是否可能?如何实现?

只是一个想法: 我是否可以以某种方式将MATLAB代码嵌入C中,以便它可以在C编译器上编译?

3个回答

17

10

如之前回答者所提到的,您可以通过MATLAB引擎接口从C中调用MATLAB的实时副本。

如果最终产品需要在没有MATLAB实时副本的情况下使用,则可以使用MATLAB编译器部署应用程序。但是,正如另一个回答所建议的那样,MATLAB编译器不会将MATLAB程序转换为C代码(并且现在已经有几个版本没有这样做了)。相反,它会对您的MATLAB程序进行归档和加密,并将其打包成可执行文件或共享库,以针对MATLAB编译器运行时(可共享免版税)执行。然后可以从C中调用可执行文件或共享库。

或者你也可以反过来,从MATLAB中调用你的C代码,使用loadlibrary或者MATLAB的MEX接口

更新:从R2011a版本开始,你也可以使用MATLAB Coder直接从MATLAB语言的子集生成C代码。


我链接到了错误的产品 - 从Matlab生成C代码在许多行业中都是非常基础的使用方式。 - Pete Kirkham
是的 - 如果您想从MATLAB生成用于嵌入式应用的C代码,可以使用emlc命令来实现。不过,这需要您同时拥有Simulink和Real-Time Workshop(而非MATLAB编译器),这似乎有些过度设计,只是为了绘制三角形的点 :) - Sam Roberts
更新:MathWorks现在有一个新产品:MATLAB Coder - Amro

0

嗨!回答中如果引用链接,应包含链接的必要部分,因为链接可能会失效,无法访问。 - hichris123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接