Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java运行MATLAB函数_Java_Matlab - Fatal编程技术网

从Java运行MATLAB函数

从Java运行MATLAB函数,java,matlab,Java,Matlab,我在MATLAB中有一个.m文件,我想从Java调用它,以字符串或Java中的任何形式获取解决方案。这听起来很简单,但由于某种原因,我无法让它工作 我试过这个: matlab -nosplash -wait -nodesktop -r myFunction 但我不确定如何解析答案,因为MATLAB打开了自己的命令行(在Windows中) 我用这个,但它不返回任何东西 Process p = Runtime.getRuntime().exec(commandToRun); BufferedRe

我在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时,似乎都会打开一个单独的窗口,这是一个问题,因为我想多次运行它。

诀窍是使用MatlabControl类。它非常易于使用,并且您可以完全完成您想要做的事情(以及更多)。

存在一个名为JaCoB()的Java COM桥,您可以使用它在后台自动启动Matlab作为COM服务器。然后,您可以按照Matlab帮助中的说明与Matlab COM接口交互

虽然这是一个非常通用的接口,但它提供了足够的灵活性,可以像在您的案例中那样轻松地调用Matlab

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

基于Jeff提到的MatlabControl使用的相同底层MATLAB库,但更为最新、可靠和有文档记录。首先,请看一看。

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

在Matlab R2016b中,MathWorks添加了它,它允许从Java执行Matlab代码。

也许
-logfile
命令选项可能会有所帮助:Jeff!罗布!很高兴在这里看到你们。