【发布时间】:2011-11-13 10:54:28
【问题描述】:
我有一个 matlab 脚本,它接受一个输入 mat 文件并生成一个输出文件。 目前我有一个能够执行这个脚本的 shell 脚本。
我正在使用 ProcessBuilder 类从 Java 执行此脚本,并且一切正常。
我需要经常从 java 执行 matlab 脚本执行,每次执行脚本时都会创建 mcr 进程,执行脚本并终止 mcr。
我喜欢打开 MCR 进程并打开一个面向 java 的 matlab 会话,这样同一个进程就可以保持活动状态,这样我就可以在同一个会话中多次执行脚本。
我发现 matlabcontrol 似乎适合这个。
如何使用 MCR 位置和 LD_LIBRARY_PATH 配置 MatlabProxyFactory
我在我的 shell 脚本中设置哪个并在同一个会话中执行我的脚本?
我还遇到了一个工具 MATLAB JA Builder,但我目前无法使用它,因为它不是免费的。
谢谢!
【问题讨论】:
-
谢谢 Amro,我会测试一下。但是有一个问题 - matlab 控件如何知道 matlab 运行时主页来调用它?我已经进行了默认的 mcr 安装,但 matlab 不在系统类路径上。
-
这里要明确一点,matlabcontrol 需要实时安装 MATLAB,并且不能仅与 MATLAB Compiler Runtime (MCR) 一起使用。也就是说,如果您有非默认 MATLAB 安装位置,则需要明确指定该信息。有关更多信息,请参阅matlabcontrol.MatlabProxyFactoryOptions.Builder 的文档
-
非常感谢您的回复。我只有 MCR 而不是 Matlab..有没有 java 库来实现类似的事情?
-
如果您有权访问 MATLAB Builder JA,则可以从您的 MATLAB 脚本构建一个 java 库(而不是我假设您目前拥有的可执行文件)。它会在开始时公开要调用一次的初始化方法,然后您可以根据需要多次调用计算方法(无需多次创建/拆除 MCR 会话的开销)。请查阅文档各自的产品
标签: java matlab matlab-deployment processbuilder