【问题标题】:How to run Matlab from Java code [closed]如何从 Java 代码运行 Matlab [关闭]
【发布时间】:2013-07-20 23:45:11
【问题描述】:

我想知道是否有人可以告诉我在 Java 中运行 Matlab 代码的最佳方式是什么。我从未使用过 Matlab,我的计算机上也没有安装 Matlab。我得到了一个 Matlab 文件,该文件具有执行某些计算并返回性能度量的函数。 Matlab中的函数使用了Matlab控件工具箱的其他函数。我希望能够从我的 Java 代码中调用这个函数。这样的事情可能吗?如何实现?

谢谢!

【问题讨论】:

  • 我进行了编辑以将 Octave 标签添加到您的问题中。也许 Octave 用户会为您提供其他选择 - 假设您的文件在 Octave 中运行(或可以制作)
  • 我希望您明白,产品 A 不能在没有产品 A 的情况下用于产品 B,其中 A 和 B 除了最一般意义上的关系之外没有任何关系。
  • 将 Matlab 和 Java 集成起来很麻烦。 “官方”方式是使用 MathWorks JBuilder,它将 Matlab 代码包装在 Java 接口中,并使用精简版的 Matlab 来运行它。运行它时往往会有很大的启动开销。如果可能,您可以尝试使用 octave 并研究 com 自动化。
  • 我假设您提到的这个“Matlab 文件”是一个包含源代码的.m Matlab M 文件(而不是使用 Matlab 编译器创建的可执行文件,例如)。对吗?
  • 是的,这是一个 .m 文件

标签: java matlab octave


【解决方案1】:

编辑:如果您自己的机器上没有 Matlab,您可以尝试运行 Octave 中的文件。希望 Octave 的 Control Toolbox 能满足您的需求并且兼容。然后有javaOctavejoPAS 将Octave 连接到Java。或者,也许您可​​以要求获得一份 Matlab 副本。 :-)

我不知道如何与 Octave 交互,但 Matlab 的一种可能性是使用 matlabcontrol Java API。您仍然需要使用具有 Matlab 许可证(以及所有必要工具箱的许可证)的计算机。

另一种可能是 MathWorks 的MATLAB Builder JA。大多数 Matlab 安装不附带它,因此需要额外付费。他们说它适用于“most toolboxes”。有免费试用。

在 OS X 或 Linux 上,我想知道是否可以通过 Java 程序将 pipe commands 输入和输出 command line version of Matlab(或 Octave)...

【讨论】:

  • 我在 Mac 上尝试过从 Matlab 到 Java 的管道,它可以工作。但祝你好运,我花了比它值得的时间更长的时间。你会认为这样的事情会被记录下来,因为它是一个 matlab 命令,但不是。
【解决方案2】:

一个很好的问题!鉴于 Matlab/Simulink 具有 Java 源代码,集成不紧密是荒谬的。

有没有人看过 Matlab 的表现.. 太可怕了。设计者应该已经意识到人们会想要从其他语言中使用它,并且至少已经制作了一本真正的手册,而不是第三方编写的半个 matlabcontrol。

管道很好,但也有其自身的问题,主要是便携性。 IMO 除了在 Matlab 中滚动您自己的 TCP/IP 或 UDP 客户端/服务器之外,您不应该为任何事情而烦恼。这并不难。您在上面选择的协议可能是,但这取决于您。

我已经尝试了替代方案。

但老实说,如果你是一个初学者,只是学习 matlab,它并不比 java 难,而且会更有价值。

【讨论】:

  • "我从来没有使用过 Matlab,我的电脑上也没有安装 Matlab" 这是一个完全专有的产品。
  • "在 Java 中运行 Matlab 代码的最佳方式是什么。"
  • 嗯?答案应该在OP给出的参数中给出。
  • @hexafraction 所以你投了反对票,然后退避并删除你的帖子。为什么不让社区来决定?猜猜他们已经这样做了。
  • 正如我所说的,我没有心情和你争论。
猜你喜欢
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多