Как вызвать функции Matlab из Java, используя matlabcontrol, не каждый раз начиная новый сеанс? - PullRequest
2 голосов
/ 08 декабря 2011

Я использую matlabcontrol для вызова функций Matlab из Java

Мой код работает хорошо, но он открывает новый сеанс Matlab всякий раз, когда я запускаю свой код на Java. Я редактировал в соответствии с 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();
}

Ответы [ 3 ]

3 голосов
/ 28 декабря 2011

Это то, что я сделал, надеюсь, это поможет

MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder()
    .setUsePreviouslyControlledSession(true)
    .setHidden(true)
    .setMatlabLocation(null).build(); 

    MatlabProxyFactory factory = new MatlabProxyFactory(options);
    MatlabProxy proxy = factory.getProxy();
0 голосов
/ 29 октября 2016
MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder()
                .setUsePreviouslyControlledSession(true)
                 //.setPort(2100)
                .build();           

MatlabProxyFactory factory=new MatlabProxyFactory(options );
MatlabProxy proxy=factory.getProxy();
proxy.disconnect();//this is very important
0 голосов
/ 22 декабря 2011

Попробуйте использовать Matlab Engine напрямую вместо Matlab Control.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...