如何从Java运行MATLAB代码?

时间:2010-01-25 06:13:30

标签: java matlab matlab-deployment

我在使用Java运行MATLAB代码时遇到了问题。如果您对此有所了解,请帮帮我吗?

5 个答案:

答案 0 :(得分:5)

如果您不想购买MathWork的MATLAB Builder for Java Toolbox,您可以使用MATLAB的无证JMI(Java-MATLAB接口)。在CSSM新闻组(或Google)中搜索JMI或基于JMI的JMatLink。 MATLAB代码本身充满了JMI用法示例 - 在整个MATLAB安装中使用MATLAB编辑器的搜索工具搜索“jmi”。

请注意,MathWorks既没有记录也没有正式支持JMI。此外,如果使用不当,它可能会挂起或崩溃您的应用程序。但与工具箱不同,它是免费的。

答案 1 :(得分:1)

您可以使用matlabcontrol而不是使用Yair提到的未记录的JMI(Java MATLAB接口),这是一个包装JMI的Java API,使其更易于使用。它有详细记录,并有一个介绍walkthrough。与直接使用JMI不同,它也可以在MATLAB外部运行Java程序时使用。

答案 2 :(得分:1)

我已经使用Java Builder在java应用程序中运行matlab脚本/函数,它似乎非常简单和有用。

为此,您需要使用Java Builder JA工具箱将matlab脚本/函数部署为java类。

然后,您需要将(转换的)java类添加到您的Java项目库中,另外还需要添加javabuilder jar文件。

完成上述步骤后,您只需在代码中调用类名即可轻松运行matlab脚本(现在是项目库中的java类)。 如果类是matlab函数,则可以传递参数并轻松获取返回值。

但是当然,这不是唯一的方法。但这个对我来说似乎比较容易。

我希望这能回答你的问题。

答案 3 :(得分:0)

这是一个允许您deploy MATLAB code as java classes的包。

答案 4 :(得分:0)

有两种方法可以做到这一点:

  1. 使用具有C接口的Matlab引擎(请参阅第一个答案的链接)。必须在要运行它的所有机器上安装Matlab(有关详细信息,请参阅Matlab许可证)
  2. 使用Matlab Builder for Java编译matlab代码并直接生成函数的Java接口。使用此解决方案,您需要通过Matlab编译器和Matlab Builder for Java,但您可以部署解决方案而无需支付更多费用。请注意,您必须在每台计算机上安装Matlab编译器运行时(MCR),但这是免费的。