您可以连接MATLAB®Python的发动机®到已在本地计算机上运行的共享MATLAB会话。您还可以从单个Python会话连接到多个共享MATLAB会话。您可以在会话期间随时共享MATLAB会话,也可以在“启动”选项开始时共享一个MATLAB会话。
首先,将MATLAB会话转换为共享会话。来自Matlab电话matlab.eengine.Shareengine.
。
matlab.eengine.Shareengine.
在操作系统提示符下启动Python。连接到共享MATLAB会话,呼叫matlab.engine.connect_matlab.
来自Python。您可以从Python调用任何Matlab函数。
导入matlab.engine Eng = MATLAB.ENGINE.CONNECT_MATLAB()ENG.SQRT(4.0)
2.0
您可以通过名称连接到共享会话。要查找共享会话的名称,请调用matlab.engine.find_matlab.
来自Python。
matlab.eengine.find_matlab()
('matlab_13232',)
matlab.engine.find_matlab.
返回A.元组
使用本地计算机上的所有共享MATLAB会话的名称。在这个例子中matlab.eengine.Shareengine.
给了共享会话默认名称matlab_13232.
,其中13232是MATLAB过程的ID。每当您启动MATLAB时,操作系统都会为MATLAB会话提供不同的进程ID。
按名称连接到MATLAB会话。
eng.quit()newengine = matlab.eengine.connect_matlab('matlab_13232')
如果未指定共享会话的名称,matlab.engine.connect_matlab.
连接到名为的第一个会话元组
返回的matlab.engine.find_matlab.
。
来自MATLAB,将MATLAB会话转换为共享会话。
matlab.eengine.Shareengine.
在操作系统提示符下启动Python。异步连接到共享MATLAB会话。
导入matlab。引擎未来= matlab.engine.connect_matlab(background=True) eng = future.result()
从Python调用matlab函数。
Eng.sqrt(4.0)
2.0
您可以从Python连接到多个共享MATLAB会话。
启动第二个MATLAB会话。来自Matlab电话matlab.eengine.Shareengine.
。给出第二个共享会话的名称。名称必须是有效的MATLAB变量名称。有关有效变量名称的信息,请参阅变量名称。
matlab.eengine.shareengine('matlabengine2')
从Python中,找到所有共享的MATLAB会话。
导入matlab.eengine matlab.engine.find_matlab()
('matlab_13232','matlabengine2')
要连接到共享MATLAB会话,请致电matlab.engine.connect_matlab.
来自Python。
Eng1 = Matlab.eNgine.Connect_Matlab('matlab_13232')eng2 = matlab.egine.connect_matlab('matlabengine2')
默认情况下,不共享MATLAB会话。但是,您可以使用启动选项启动MATLAB作为共享会话。
在操作系统提示符下启动共享MATLAB会话。
matlab -r“matlab.engine.shareengine”matlab -r“matlab.engine.shareengine('matlabengine3')”
您可以使用默认名称启动会话,或者给出单引号中括起来的名称。
matlab.engine.connect_matlab.
|matlab.engine.enginename.enginename.
|matlab.engine.find_matlab.
|matlab.engine.Isengineshared.
|matlab.eengine.Shareengine.