用Java调用MATLAB函数

11
我有一个在MATLAB中的.m文件,我想从Java中调用,并将解决方案作为字符串或其他形式在Java中获取。这听起来很简单,但由于某种原因我无法使其工作。
我尝试了以下方法:
matlab -nosplash -wait -nodesktop -r  myFunction

但是我不确定如何解析该答案,因为MATLAB会打开它自己的命令行(在Windows系统下)。

我使用以下代码,但它没有返回任何内容。

Process p = Runtime.getRuntime().exec(commandToRun);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

此外,似乎每次我调用MATLAB时都会打开一个单独的窗口,这是一个问题,因为我想运行它多次。


也许 -logfile 命令选项可以帮助你:https://dev59.com/hHI_5IYBdhLWcg3wHvQ5#1518165 - Amro
5个回答

7

matlabcontrol 基于与Jeff提到的MatlabControl相同的基础MATLAB库,但更为更新、可靠和有文档支持。要开始使用,请参阅Walkthrough


7

Jeff!Rob!很高兴在这里见到你们。 - Scottie T

2

1

JAMAL 是一个开源的、基于 Java RMI(Java 远程方法调用 API)的库,适合您的需求。


0

有一个很好的Java-COM-Bridge叫做JaCoB(http://sourceforge.net/projects/jacob-project/),你可以使用它来自动启动Matlab作为后台COM服务器。然后,您可以按照Matlab帮助中的说明与Matlab COM接口交互。

虽然这是一个非常通用的接口,但它提供了足够的灵活性,以便像您的情况一样轻松地调用Matlab。

只需下载JaCoB包并在docs文件夹中查找一些文档即可。您还必须将Jacob DLL包含在您的路径中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接