您可以连接Java®发动机到共享MATLAB®在本地计算机上运行的会话。要连接到共享MATLAB会话:
启动MATLAB作为共享引擎会话,或制作运行的MATLAB进程使用matlab.engine.shareEngine
。
使用使用的查找MATLAB共享会话的名称matlabengine.findmatlab.
或者matlabengine.findmatlabasync.
静态方法。
传递包含共享MATLAB会话名称的字符串matlabengine.connectmatlab.
或者matlabengine.connectmatlabasync.
静态方法。这些方法将Java引擎连接到共享会话。
如果您未在调用时指定共享MATLAB会话的名称matlabengine.connectmatlab.
或者matlabengine.connectmatlabasync.
,引擎使用创建的第一个共享MATLAB会话。如果没有可用的共享MATLAB会话,则引擎会创建共享MATLAB会话并连接到此会话。
有关这些方法的描述,请参阅com.mathworks.eengine.matlabengine.
通过调用将MATLAB会话转换为共享会话matlab.engine.shareEngine
来自Matlab。
matlab.engine.shareEngine
找到会话并同步地从Java连接。
导入com.mathworks.eengine。*;公共类javafindconnect {public静态void main(string [] args)抛出异常{string []引擎= matlabengine.findmatlab();Matlabengine Eng = Matlabengine.ConnectMatlab(发动机[0]);//在共享matlab会话上执行命令.En.eval(“绘图(1:10);打印('myplot',' - djpeg')”);eng.Close();}}
通过调用将MATLAB会话转换为共享会话matlab.engine.shareEngine
来自Matlab。
matlab.engine.shareEngine
查找会话并与Java异步连接。
导入com.mathworks.eengine。*;导入java.util.concurrent.future;公共类javafindconnectasync {public static void main(string [] args)抛出异常{feileefuture = matlabengine.findmatlabasync();String []引擎= efuture.get();未来 engfuture = matlabengine.connectmatlabasync(发动机[0]);//在其他线程上工作Matlabengine Eng = Engfuture.get();//在共享Matlab会话未来执行命令 vfuture = eng.evalasync(“绘图(1:10);打印('myplot',' - djpeg')”);eng.Close();}}
执行执行时,您可以指定共享MATLAB会话的名称matlab.engine.shareEngine
matlab功能。这样做消除了需要使用matlabengine.findmatlab.
或者matlabengine.findmatlabasync.
去找名字。
例如,启动matlab并命名共享会话mymatlabengine.
。
matlab -r“matlab.engine.shareengine('mymatlabengine')”
从Java连接到名为Matlab会话。
导入com.mathworks.eengine。*;公共类JavanameConnect {公共静态void main(String [] args)抛出异常{String [] MyEngine = {“mymatlabengine”};Matlabengine Eng = Matlabengine.ConnectMatlab(MyEngine [0]);//在共享matlab会话上执行命令.En.eval(“绘图(1:10);打印('myplot',' - djpeg')”);eng.Close();}}