package de.mpicbg.knime.scripting.matlab.ctrl;
import java.util.concurrent.ArrayBlockingQueue;
import matlabcontrol.MatlabConnectionException;
import matlabcontrol.MatlabInvocationException;
import matlabcontrol.MatlabProxy;
import matlabcontrol.MatlabProxyFactory;
import matlabcontrol.MatlabProxyFactoryOptions;
public class MatCtrlTest {
public static void main(String[] args) throws MatlabConnectionException, InterruptedException, MatlabInvocationException {
MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder().setUsePreviouslyControlledSession(true).build();
MatlabProxyFactory factory = new MatlabProxyFactory(options);
final ArrayBlockingQueue<MatlabProxy> proxyQueue = new ArrayBlockingQueue<MatlabProxy>(1);
factory.requestProxy(new MatlabProxyFactory.RequestCallback()
{
@Override
public void proxyCreated(MatlabProxy proxy)
{
proxyQueue.add(proxy);
}
});
MatlabProxy proxy = proxyQueue.take();
proxy.eval("a = 104");
Object res = proxy.getVariable("a");
System.out.println(res);
proxy.disconnect();
}
}