连接Python运行MATLAB会话
你可以连接MATLAB®Python引擎®到已经在本地机器上运行的共享MATLAB会话。您还可以从一个Python会话连接到多个共享的MATLAB会话。您可以在会话期间的任何时间共享MATLAB会话,或者在开始时使用启动选项。
连接到共享MATLAB会话
首先,将MATLAB会话转换为共享会话。来自MATLAB调用matlab.engine.shareEngine
.
matlab.engine.shareEngine
在操作系统提示符下启动Python。调用matlab.engine.connect_matlab
从Python连接到共享的MATLAB会话。您可以从Python调用任何MATLAB函数。
导入matlab。Engine Engine = matlab.engine.connect_matlab() Engine .sqrt(4.0)
2.0
您可以通过名称连接到共享会话。要查找共享会话的名称,请调用matlab.engine.find_matlab
从Python。
matlab.engine.find_matlab ()
(“MATLAB_13232”)
matlab.engine.find_matlab
返回一个元组
使用本地机器上所有共享的MATLAB会话的名称。在这个例子中matlab.engine.shareEngine
为共享会话指定了默认名称MATLAB_13232
,其中13232是MATLAB进程的ID。无论何时启动MATLAB,操作系统都会给MATLAB会话一个不同的进程ID。
通过名称连接到MATLAB会话。
eng.quit() newEngine = matlab.engine.connect_matlab('MATLAB_13232')
如果未指定共享会话的名称,则matlab.engine.connect_matlab
类中指定的第一个会话元组
返回的matlab.engine.find_matlab
.
异步连接到共享MATLAB会话
从MATLAB中,将MATLAB会话转换为共享会话。
matlab.engine.shareEngine
在操作系统提示符下启动Python。异步连接到共享的MATLAB会话。
导入matlab。engine future = matlab.engine.connect_matlab(async=True)
从Python调用MATLAB函数。
eng.sqrt (4.0)
2.0
连接多个共享MATLAB会话
您可以从Python连接到多个共享的MATLAB会话。
开始第二个MATLAB会话。来自MATLAB调用matlab.engine.shareEngine
.为第二个共享会话指定一个名称。名称必须是有效的MATLAB变量名称。有关有效变量名的信息,请参见变量名.
matlab.engine.shareEngine (“MATLABEngine2”)
从Python中找到所有共享的MATLAB会话。
导入matlab。引擎matlab.engine.find_matlab ()
(' MATLAB_13232 ', ' MATLABEngine2 ')
调用matlab.engine.connect_matlab
从Python连接到共享的MATLAB会话。
eng1 = matlab.engine.connect_matlab('MATLAB_13232') eng2 = matlab.engine.connect_matlab('MATLABEngine2')
开始共享MATLAB带有启动选项的会话
默认情况下,MATLAB会话是不共享的。但是,您可以使用启动选项将MATLAB作为共享会话启动。
在操作系统提示符下启动共享MATLAB会话。
Matlab -r“Matlab .engine”。"matlab.engine.shareEngine('MATLABEngine3')"
您可以使用默认名称启动会话,或者使用单引号括起名称。
另请参阅
matlab.engine.connect_matlab
|matlab.engine.engineName
|matlab.engine.find_matlab
|matlab.engine.isEngineShared
|matlab.engine.shareEngine