Main Content

启动和停止用于 PythonMATLAB 引擎

启动 MATLAB Engine for Python

  • 在操作系统提示符下启动 Python®

  • matlab.engine 包导入您的 Python 会话中。

  • 通过调用 start_matlab 启动新的 MATLAB® 进程。start_matlab 函数返回 Python 对象 eng,您可以通过该对象传递数据和调用由 MATLAB 执行的函数。

import matlab.engine
eng = matlab.engine.start_matlab()

使用启动选项启动引擎

启动引擎,并将选项作为输入参量字符串传递给 matlab.engine.start_matlab。例如,随桌面启动 MATLAB。

eng = matlab.engine.start_matlab("-desktop")

您可以使用单个字符串定义多个启动选项。例如,启动桌面并将数值显示格式设置为 short

eng = matlab.engine.start_matlab("-desktop -r 'format short'")

您也可以在启动引擎后启动桌面。

import matlab.engine
eng = matlab.engine.start_matlab()
eng.desktop(nargout=0)

启动特定 MATLAB 引擎版本

要启动特定版本的 MATLAB 引擎,请将 PYTHONPATH 环境变量设置为包的位置。Python 可能使用不同的文件夹名称进行安装。请验证系统上的安装文件夹,以便与 sys.path.append 命令结合使用。有关安装信息,请参考您的 Python 文档,例如模块搜索路径

以下代码假设您使用了 为多个 MATLAB 版本安装 中显示的安装步骤。要将 Windows® 上的 PYTHONPATH 设置为调用 MATLAB R2022a,请键入:

sys.path.append("c:\work\matlab22aPy39\Lib\site-packages")

在 Linux®macOS 上:

sys.path.append("/local/work/matlab22aPy39/Lib/site-packages")

要检查导入了哪个版本的 MATLAB,请在 Python 中键入:

import matlab
print(matlab.__file__)

异步启动引擎

以异步方式启动引擎。在 MATLAB 启动时,您可以在 Python 命令行中输入命令。

import matlab.engine
future = matlab.engine.start_matlab(background=True)

创建 MATLAB 实例,以便在 MATLAB 中执行计算。

eng = future.result()

运行多个引擎

分别启动每个引擎。每个引擎启动自己的 MATLAB 进程并与之通信。

eng1 = matlab.engine.start_matlab()
eng2 = matlab.engine.start_matlab()

停止引擎

调用 exitquit 函数。

eng.quit()

如果在引擎仍在运行的情况下退出 Python,Python 会自动停止引擎及其 MATLAB 进程。

另请参阅

相关主题