【发布时间】:2011-12-07 20:46:11
【问题描述】:
我正在使用 matlabcontrol 从 Java 调用 Matlab 函数
我的代码运行良好,但每当我在 Java 中运行代码时,它都会打开新的 Matlab 会话。 我根据 Javadoc 进行了编辑,但我想我错过了一些东西。
我也尝试过使用/不使用“proxy.disconnect()”,但它仍然会打开新的 Matlab 会话。 任何提示都会非常有帮助。我被卡住了..
下面是我的 Java 代码
import matlabcontrol.MatlabConnectionException;
import matlabcontrol.MatlabInvocationException;
import matlabcontrol.MatlabProxy;
import matlabcontrol.MatlabProxyFactory;
import matlabcontrol.MatlabProxyFactoryOptions;
public class callSaliencymap {
/**
* @param args
*/
public static void main(String[] args) throws MatlabConnectionException, MatlabInvocationException
{
//Create a proxy, which we will use to control MATLAB
MatlabProxyFactory factory = new MatlabProxyFactory();
MatlabProxy proxy = factory.getProxy();
MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder()
.setUsePreviouslyControlledSession(true)
.setHidden(true)
.build();
factory = new MatlabProxyFactory(options);
//Create proxy factory
//test the saliencymap
Object[] saliencylocation = proxy.returningFeval("runActivation",1,"tank.bmp",1);
System.out.println(saliencylocation[0]);
//Disconnect the proxy from MATLAB
//proxy.disconnect();
}
【问题讨论】:
-
我想你的答案就在这里:stackoverflow.com/questions/7212467/…
-
非常感谢,Rich。我检查了帖子并尝试运行代码,但它仍然会打开每个新的 Matlab 会话。我想我还是想念一些东西..
-
我从未使用过matlabcontrol,所以无法提供更多建议。代码中的示例名为 addpath,然后在该目录中运行脚本。只有在一个持久性 matlab 会话中执行所有命令时,该示例才有效。这就是为什么我认为这是您正在寻找的解决方案。不知道你为什么投了反对票。