从C调用MATLAB

时间:2010-01-18 11:19:01

标签: java c matlab gcc matlab-engine

我正在编写一个需要能够运行MATLAB命令的Java应用程序。为此,我使用的是Java应用程序可以调用的C程序来与MATLAB进行交互。然而,即使在研究了MATLAB引擎之后,我似乎也无法弄清楚如何编译C程序。该文档似乎是在MATLAB中编译C程序:http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/f39903.html。有没有办法从命令行编译?也就是说,我可以使用带有一些标志的gcc来包含所有相关的MATLAB支持(我通常不用C语言编程,如果我的语言不完全正确,那就很抱歉!)

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以像正常的C程序一样正常编译代码,但需要正确指定依赖项。

最好的方法是将CMake实用程序与CMakelists.txt文件一起使用。现在,给出了一个关于如何编写CMakeLists.txt的演示here,并给出了如何使用Matlab与C / C ++接口here。我希望它有所帮助......

答案 1 :(得分:0)

我不使用MATLAB,但我猜你必须做这样的事情:

  1. 使用MATLAB库编译C程序,以创建Java可以使用的共享库。
  2. 编写一个调用共享库的JNI接口,确保链接到新的SO和所有来自MATLAB的链接。
  3. 将问题分解为几个步骤,然后将其解决。

答案 2 :(得分:0)

也许你想要做以下事情:

1)使用matlab命令行中的matlab编译器mcc编译matlab代码(即m文件)。 mcc编译器生成c dll。 matlab生成的c dll包含matlab m文件的c接口。请参阅以下链接,了解如何从matlab M文件生成c dll。 C Shared Library Target

2)在步骤1中编写使用生成的matlab dll的c dll。用c编译器编译c dll。参见以下链接,了解如何调用matlab生成的dll中的函数 MATLAB Compiler Generated Interface Functions

3)在步骤2中使用java生成的c dll。