5

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

4

5 回答 5

5

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

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

于 2010-01-25T10:14:03.070 回答
1

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

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

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

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

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

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

于 2013-05-13T07:51:06.360 回答
1

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

于 2011-07-08T23:33:27.543 回答
0

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

于 2010-01-25T06:17:21.993 回答
0

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

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