文档

连接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')"

您可以使用默认名称启动会话,或者使用单引号括起名称。

另请参阅

||||

相关的话题

这个话题有帮助吗?