主要内容

连接Java运行MATLAB会议

找到并连接到MATLAB

您可以连接Java®引擎共享MATLAB®在本地机器上运行的会话。连接到共享的MATLAB会话:

  • 以共享引擎会话的形式启动MATLAB,或者共享正在运行的MATLAB进程matlab.eengine.Shareengine.

  • 方法查找MATLAB共享会话的名称MatlabEngine.findMatlabMatlabEngine.findMatlabAsync静态方法。

  • 将包含共享MATLAB会话名称的字符串传递给MatlabEngine.connectMatlabMatlabEngine.connectMatlabAsync静态方法。这些方法将Java引擎连接到共享会话。

如果在调用时没有指定共享MATLAB会话的名称MatlabEngine.connectMatlabMatlabEngine.connectMatlabAsync,引擎使用创建的第一个共享MATLAB会话。如果没有共享的MATLAB会话可用,引擎创建一个共享的MATLAB会话并连接到这个会话。

有关这些方法的描述,请参见com.mathworks.engine.MatlabEngine

连接到MATLAB同步

通过调用将MATLAB会话转换为共享会话matlab.eengine.Shareengine.从MATLAB。

matlab.eengine.Shareengine.

找到会话并从Java同步连接。

进口com.mathworks.engine。*;public class javaFindConnect {public static void main(String[] args) throws Exception {String[] engines = MatlabEngine.findMatlab();MatlabEngine eng = MatlabEngine. connectmatlab(引擎[0]);//在共享MATLAB session上执行命令eng.eval("plot(1:10);打印(‘myPlot’,‘-djpeg’)”);eng.close ();}}

连接到MATLAB异步

通过调用将MATLAB会话转换为共享会话matlab.eengine.Shareengine.从MATLAB。

matlab.eengine.Shareengine.

从Java中找到会话并异步连接。

进口com.mathworks.engine。*;进口java.util.concurrent.Future;public class javaFindConnectAsync {public static void main(String[] args) throws Exception {Future eFuture = MatlabEngine.findMatlabAsync();String[] engines = eFuture.get();Future engFuture = MatlabEngine. connectmatlabasync (engines[0]);//在其他线程上工作MatlabEngine eng = engFuture.get();//在共享MATLAB会话Future上执行命令 vFuture = eng.evalAsync("plot(1:10);打印(‘myPlot’,‘-djpeg’)”);eng.close ();}}

指定共享会话名称

控件时可以指定共享MATLAB会话的名称matlab.eengine.Shareengine.MATLAB函数。这样做可以消除使用的需要MatlabEngine.findMatlabMatlabEngine.findMatlabAsync找到名称。

例如,启动MATLAB并命名共享会话myMatlabEngine

matlab - r”matlab.engine.shareEngine (myMatlabEngine)”

从Java连接到命名的MATLAB会话。

进口com.mathworks.engine。*;public class javaNameConnect {public static void main(String[] args) throws Exception {String[] myEngine = {"myMatlabEngine"};MatlabEngine eng = MatlabEngine. connectmatlab (myEngine[0]);//在共享MATLAB session上执行命令eng.eval("plot(1:10);打印(‘myPlot’,‘-djpeg’)”);eng.close ();}}

相关话题