如何从Java运行MATLAB代码?

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

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

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

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

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

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

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

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

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

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

这是一个允许您将MATLAB代码部署为java类的包 。

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

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