主要内容

Python 支持的限制

MATLAB® 中不支持的功能

在使用进程内执行模式运行 MATLAB 时关闭 Python® 解释器。

将 Python 对象保存(序列化)到 MAT 文件中。

将通过 pyargs 创建的 Python 对象或关键字参量作为关键参量传递给 MATLAB dictionary 函数或作为输入传递给 keyMatch 函数。

交互式 Python 帮助(调用不带输入参量的 py.help)。

访问 Python 类的静态属性。

MATLAB isa 函数不识别虚拟继承。

从 Python 类的 MATLAB 类继承。

自定义(动态)属性访问。

嵌套的 Python 类。

在单独进程中启动 MATLAB 的模块,例如 multiprocessing 模块。

读取 sys.argv(即传递给 Python 脚本的命令行参量)的模块,例如 Tkinter

动态生成的 Python 类。

动态附加新对象属性。应改用 py.setattr

以下划线 (_) 字符开头的类名称或其他标识符。请改用 Python py.getattrpy.setattr 函数。

MATLAB Compiler SDK™ 产品生成的 Python 模块。

macOS 平台上使用 Cocoa (AppKit) 作为用户界面的 Python 代码。

当您在进程外调用 Python 函数时,在 Python 和 MATLAB 之间传递的变量的大小限制为 2 GB。此限制应用于进程间传递的数据和支持信息。

pyrunpyrunfile 函数的限制

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

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

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

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

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

不支持的 MATLAB 类型

Python 不支持下列 MATLAB 类型。

  • 多维 charcell 数组

  • 稀疏数组

  • struct 数组

  • categorical

  • containers.Map

  • MATLAB 对象

  • matlab.metadata.Class (py.class)

另请参阅

主题