从 MATLAB 访问 Python 模块 - 快速入门
您可以从 MATLAB® 访问所有标准 Python® 库内容。同样,您可以使用第三方或用户创建的模块中的功能。要直接从 MATLAB 调用 Python 功能,请将 py.
前缀添加到要调用的 Python 函数的名称。
要调用 Python 标准库中的内容,请在 Python 函数或类名称的前面添加
py.
。py.list({"This","is a","list"}) % Call built-in function list
要调用可用模块中的内容,请在后跟 Python 函数或类名称的 Python 模块名称前面添加
py.
。py.textwrap.wrap("This is a string") % Call wrap function in module textwrap
无需导入模块便可使用它们。但您可以将 Python 名称导入到您的 MATLAB 函数中,方法与导入 MATLAB 命名空间中的内容的方法相同。有关详细信息,请参阅了解 Python 和 MATLAB 导入命令。
MATLAB 还提供了一种直接从 MATLAB 在 Python 解释器中运行 Python 代码的方法。有关详细信息,请参阅直接从 MATLAB 调用 Python 功能。
学习目标
本教程解释如何:
检查您计算机上的 Python 版本。
创建一个 Python 对象并对其调用方法。
显示 Python 模块的帮助。
创建专用的 Python
list
、tuple
和dict
(字典)类型对 Python 对象调用与 MATLAB 函数同名的方法。
从您自己的 Python 模块调用功能。
查找示例。
验证 Python 配置
要在 MATLAB 中使用 Python,您的计算机上必须安装受支持的 Python 版本。有关详细信息,请参阅配置您的系统使用 Python。
确保 Python 路径包含在您的系统路径环境变量中。要验证您是否安装了受支持的 Python 版本,请键入:
pyenv
ans = PythonEnvironment with properties: Version: "3.11" Executable: "C:\Users\aname\AppData\Local\Programs\Python\Python311\pythonw.exe" Library: "C:\Users\aname\AppData\Local\Programs\Python\Python311\python311.dll" Home: "C:\Users\aname\AppData\Local\Programs\Python\Python311" Status: NotLoaded ExecutionMode: OutOfProcess
如果 Version
属性的值为空,则您没有可用的受支持版本。有关安装 Python 的详细信息,请参阅配置您的系统使用 Python。
在 MATLAB 中访问 Python 标准库模块
MATLAB 与您计算机上的 Python 解释器交互,让您可以访问所有标准库内容。例如,创建一个 Python list
数据类型。
res = py.list({"Name1","Name2","Name3"})
res = Python list with values: ['Name1', 'Name2', 'Name3']
MATLAB 会识别 Python 对象,并自动将 MATLAB 元胞数组转换为适当的 Python 类型。
您可以对一个对象调用 Python 方法。要显示对 list
对象可用的方法,请键入 methods(py.list)
。例如,使用 Python append
函数更新列表 res
。
res.append("Name4")
res
res = Python list with values: ['Name1', 'Name2', 'Name3', 'Name4']
要将 list
变量转换为 MATLAB 变量,请调用 string
。
mylist = string(res)
mylist = 1×4 string array 'Name1' 'Name2' 'Name3' 'Name4'
在 MATLAB 中显示 Python 文档
您可以在 MATLAB 中显示 Python 函数的帮助文本。例如:
py.help("list.append")
Help on method_descriptor in list: list.append = append(...) L.append(object) -> None -- append object to end
键入 py.
时的 Tab 键自动填充不显示可用的 Python 功能。有关详细信息,请参阅 Python 函数的帮助。
创建列表、元组和字典类型
下表显示用于创建 list
、tuple
和 dict
类型的语句。左边是从 Python 解释器运行的语句。右边是 MATLAB 语句。
Python | MATLAB |
---|---|
>>> ['Robert', 'Mary', 'Joseph'] | >> py.list({"Robert","Mary","Joseph"}) |
>>> [[1,2],[3,4]] | >> py.list({py.list([1,2]),py.list([3,4])}) |
Python | MATLAB |
---|---|
>>> ('Robert', 19, 'Biology') | >> py.tuple({"Robert",19,"Biology"}) |
Python | MATLAB |
---|---|
>>> {'Robert': 357, 'Joe': 391, 'Mary': 229} | >> py.dict(Robert=357,Mary=229,Joe=391) |
方法和函数的优先顺序
如果 Python 类为 Python 类型定义了与 MATLAB 转换器方法同名的方法,则 MATLAB 会调用 Python 方法。这意味着您无法对该类的对象调用 MATLAB 转换器方法。
例如,如果 Python 类定义了 char
方法,以下语句将调用 Python 方法。
char(obj)
要使用 MATLAB char
函数,请键入:
char(py.str(obj))
访问其他 Python 模块
您可以在 MATLAB 中使用自己的 Python 代码和第三方模块。内容必须位于 Python 路径中。安装第三方模块会将内容放在 Python 路径中。如果您创建自己的模块,则由您负责将它们放到路径中。
有关示例,请参阅调用用户定义的 Python 模块。
Python 示例
有关可在 MATLAB 实时编辑器中打开的示例代码,请在 从 MATLAB 中调用 Python页上查找“精选示例”。有关搜索 MATLAB 示例的信息,请参阅 MATLAB 代码示例。
有关使用在线数据集的示例,请参阅此 MathWorks 博客文章。