主要内容

pyrun

运行Python的声明MATLAB

    描述

    例子

    pyrun (代码执行Python®语句代码Python解释器。

    创建的变量pyrun函数是持久的。的后续调用中可以使用这些变量pyrun

    例子

    outvars= pyrun (代码输出返回由Python生成的任何变量到MATLAB®类中指定Python变量的名称输出中捕获返回值outvars

    例子

    outvars= pyrun (代码输出pyName = pyValue使用一个或多个名称-值参数传递的MATLAB数据,执行带有指定输入和输出变量名的代码。

    例子

    全部折叠

    本例在Python解释器中执行这些Python语句。

    Greeting = "hello" print(Greeting)

    从MATLAB调用Python代码。

    pyrun (["greeting = 'hello'"“打印(问候)”])
    你好

    变量问候只存在于Python命名空间中。MATLAB显示的结果打印语句在MATLAB命令行。

    这段Python代码创建了一个星期的日期列表。

    天=['星期一','星期二','星期三','星期四','星期五']

    创建一个Python变量对于list函数。在MATLAB中,为变量命名mllist

    Mllist = pyrun(“天=(周一,周二,周三,周四,周五的)”“天”
    mllist =没有属性的Python列表。['星期二','星期一','星期三','星期四','星期五']

    这个例子执行语句A = b*c在Python解释器中输入指定的输入值。

    pyrun ("a = b*c", b = 5, c = 10)

    变量一个b,c只存在于Python命名空间中。但是,这些变量可用于进一步调用pyrun

    Md = pyrun(d = a+c“d”
    Md = 60

    下面的示例执行b * c并在MATLAB变量中返回结果。

    Res = pyrun("a = b*c"“一个”, b=5, c=10)
    Res = 50

    本例将一个局部变量赋给一个Python变量,使其在MATLAB中可访问。

    创建模块localModule.py

    def myFunc(): print('myFunc已执行')mvar = 3

    创建变量访问兆乏赋值给MATLAB变量

    pyrun (“进口localModule”) out = pyrun("m = localModule.mvar"“m”

    输入参数

    全部折叠

    一个或多个Python语句,指定为字符串标量、字符串数组、字符向量、字符数组、字符向量的单元格数组或使用Python内置代码生成的脚本的Python代码对象编译函数。每个条目代表一行Python代码。

    要调用单行语句,请通过代码作为字符串标量或字符向量。要调用多行Python语句,pass代码作为字符串数组、字符数组或字符向量的单元格数组。MATLAB在多行语句的元素之间插入换行符。

    例子:Pyrun (["a = 3","print(a)"])

    一个或多个要传递给Python的Input参数名称和值代码,指定为关键字和值参数。pyName是变量的Python名称,和pyValue是指定的值。您可以以任意顺序指定多个名称和值对参数pyName1 = pyValue1…,pyNameN = pyValueN

    例子:pyrun (b * c, b = 5, c = 10)初始化变量b而且c对于Python语句b * c

    一个或多个Python变量名,指定为字符串数组。变量可以是局部的,也可以是全局的。的输出由MATLAB指定代码到每个变量输出并返回的值outvars

    例子:MB = pyrun("b=a+2","b",a=5)

    输出参数

    全部折叠

    一个或多个MATLAB工作区变量名,返回为有效的Python类型代码.中指定Python变量的名称输出论点。如果要访问Python数据,则必须使用显式地将Python对象返回给MATLABoutvars

    要指定多个输出,请使用方括号。例如,[res1,res2] = pyrun("a=b*c",["a","b"],b=5,c=10)返回两个outvarsres1而且

    限制

    • 使用pyrunpyrunfile如果您将类的实例返回给MATLAB,则不能修改。如果你需要改变类定义,重新启动解释器会话:

      终止(pyenv) pyenv(“ExecutionMode”、“OutOfProcess”)

      或者,重新启动MATLAB for“InProcess”

      pyrun而且pyrunfile函数不支持由其他局部变量通过方法初万博1manbetx始化的具有局部变量的类。方法来创建一个模块并访问它py。前缀。

    版本历史

    R2021b中引入