主要内容

运行 Python 代码

在实时编辑器中运行 Python 语句或脚本文件

自 R2024a 起

说明

运行 Python 代码任务允许您以交互方式运行 Python® 代码或文件。该任务会自动为您的实时脚本生成 MATLAB® 代码。有关常用的实时编辑器任务的详细信息,请参阅将交互式任务添加到实时脚本中

使用此任务,您可以:

  • 编写并执行 Python 代码。

  • 执行 Python 文件中的代码。

  • 将 Python 变量返回到 MATLAB 工作区。

  • 将 MATLAB 数据传递给 Python 代码。

  • 指定命令行参量。

Run Python statements or script files in the Live Editor

打开任务

要将运行 Python 代码任务添加到 MATLAB 编辑器中的实时脚本,请执行以下操作:

  • 实时编辑器选项卡上,选择任务 > 运行 Python 代码

  • 在脚本的代码块中,键入相关关键字,例如 Pythonrun。从建议的命令自动填充项中选择 Run Python Code

示例

全部展开

在实时编辑器中使用运行 Python 代码任务以交互方式运行 Python 代码。使用运行 Python 代码任务创建的变量是持久变量。您可以在后续的运行 Python 代码任务中引用这些变量。

创建 MATLAB 变量 ab

a = 3;
b = 4;

在实时编辑器中打开运行 Python 代码任务,并选择代码作为输入类型。在输入 Python 代码部分中键入以下 Python 代码。Python math.sqrt 函数使用 MATLAB 变量 ab 作为输入。在输出选项部分中,选择全部返回以将所有生成的 Python 变量返回到 MATLAB 工作区,并选中显示输出复选框以将变量值显示为任务输出。然后点击运行按钮。

import math

h = math.sqrt(a**2 + b**2)

Run Python Code Live Editor task with parameters described in the example

如果您向实时脚本添加后续的运行 Python 代码任务,这些任务会使用此运行 Python 代码任务中的 abh 的值,并继续使用之前导入的 Python math 库。

在 MATLAB 中运行 Python 文件中的 Python 代码,并将一些生成的 Python 变量返回到 MATLAB 工作区。

从以下语句创建一个名为 circumference.py 的 Python 文件。此 Python 代码使用半径 r 计算圆的周长 c

import math 
r = 5
c = 2 * math.pi * r

在实时编辑器中打开运行 Python 代码任务,并选择文件作为输入类型。然后,在选择 Python 文件部分中指定 circumference.py 的路径。

默认情况下,实时编辑器任务会将所有生成的 Python 变量返回到 MATLAB 工作区。通过选择返回选定变量并将 c生成的 Python 变量列表移至输出列表,仅返回 c。选中显示输出复选框以在 MATLAB 中查看 c 的值。然后点击运行按钮。

Run Python Code Live Editor task with parameters described in the example

在 MATLAB 中使用命令行参量运行 Python 文件中的 Python 代码。

从以下语句创建一个名为 calculator.py 的 Python 文件。此 Python 代码从命令行获取用户输入的两个整数 xy。该代码将 xy 相减并将差值存储在 diff 中,然后将 xy 相乘并将乘积存储在 prod 中。

import sys

arg_list = list()

for arg in sys.argv:
  arg_list.append(arg)

if len(sys.argv) < 2:
  print("Initialize x and y using integers as command-line arguments.")
  exit()

x = int(arg_list[1])
y = int(arg_list[2])

diff = x - y
prod = x * y

在实时编辑器中打开运行 Python 代码任务,并选择文件作为输入类型。然后,在选择 Python 文件部分中指定 calculator.py 的路径。

指定命令行参量部分中,通过使用 + 按钮添加参量来指定命令行参量 56。在列表顶部指定的参量是 arg_list[1],在本例中是 5,列表中的下一个参量是 arg_list[2],在本例中是 6。选中显示输出复选框以在 MATLAB 工作区中查看 Python 变量的值。然后点击运行按钮。

Run Python Code Live Editor task with parameters described in the example

相关示例

参数

全部展开

此任务对 Python 代码的指定类型进行操作:

  • 代码 - 在输入 Python 代码部分的文本框中键入 Python 语句。

  • 文件 - 在选择 Python 文件部分中指定 Python 文件的路径。

您可以使用以下方法将 MATLAB 工作区变量传递给任务中的 Python 代码:

  • 将 MATLAB 变量赋给任务中的 Python 变量。

  • 将 MATLAB 变量传递给任务中的 Python 函数。

  • 在任务的 Python 运算中使用 MATLAB 变量作为操作数。

当您选择代码作为输入类型时:

  • 您创建的 Python 变量是持久变量。您可以在也使用代码作为输入类型的后续运行 Python 代码任务中引用 Python 变量。变量是持久变量,因为运行 Python 代码任务利用 pyrun

  • 您在任务中创建的 Python 变量优先于在代码中稍后创建的具有相同名称的 MATLAB 变量。换句话说,运行 Python 代码任务不使用 MATLAB 工作区中的变量。

  • 如果您导入 Python 库,则无需在后续任务中导入相同的库。

如果您选择文件作为输入类型,可以指定命令行参量。这些参量对于向指定的 Python 文件传递输入非常有用。在每个参量框中键入一个参量。点击 + 按钮可添加更多命令行参量,点击 按钮可从列表中删除命令行参量。您可以使用上三角形和下三角形按钮对参量重新排序。

指定您要实时编辑器任务将哪些生成的 Python 变量返回到 MATLAB 工作区:

  • 全部返回 - 将 MATLAB 在 Python 代码中检测到的所有变量返回到 MATLAB 工作区。

  • 返回选定变量 - 仅返回输出列表中的变量。通过在生成的 Python 变量列表中选择变量,然后点击向右箭头按钮,将变量移至输出列表

此选项控制是否将选定 Python 变量显示为任务输出。

限制

  • 对于使用 pyrunpyrunfile 定义的 Python 类,如果将类的实例返回到 MATLAB,将无法修改这些类。如果需要更改类定义,请重新启动解释器会话:

    terminate(pyenv)
    pyenv(ExecutionMode="OutOfProcess")

    或者,重新启动 MATLAB 以使用 "InProcess" 模式。

    有些局部变量要由其他局部变量通过某种方法来初始化,pyrunpyrunfile 函数不支持具有这种局部变量的类。对于这种用法,请创建一个模块并使用 py. 前缀访问它。

  • pyrunpyrunfile 或提供原生 Python 代码作为输入的运行 Python 代码任务不支持基于 Python 类型提示的类型转换。

版本历史记录

在 R2024a 中推出

另请参阅

函数