主要内容

访问Python模块从MATLAB-开始

你可以访问所有标准的Python®来自MATLAB的库内容®.同样,您可以在第三方或用户创建的模块中使用功能。要直接从MATLAB调用Python功能,请添加py。要调用的Python函数名的前缀。

  • 要调用Python标准库中的内容,请添加py。在Python函数名或类名前面。

    py.list ({“这”“是一个”“列表”})调用内置函数列表
  • 若要调用可用模块中的内容,请添加py。在Python模块名前面,后面跟着Python函数或类名。

    py.textwrap.wrap ('这是一个字符串'在模块文本封装中调用封装函数

您不需要导入模块来使用它们。但是,您可以将Python名称导入到MATLAB函数中,方法与导入MATLAB包中的内容相同。有关更多信息,请参见了解Python和MATLAB导入命令

MATLAB还提供了一种直接从MATLAB在Python解释器中运行Python代码的方法。有关更多信息,请参见从MATLAB直接调用Python功能

学习目标

本教程解释如何:

  • 检查你电脑上的Python版本。

  • 创建一个Python对象并在其上调用一个方法。

  • 显示Python模块的帮助。

  • 创建专门的Python列表元组,dict(字典)类型

  • 在Python对象上调用与MATLAB函数同名的方法。

  • 从您自己的Python模块调用功能。

  • 找到例子。

验证Python配置

要在MATLAB中使用Python,必须在计算机上安装受支持的Python版本。万博1manbetx要验证您有一个受支持的版本,请键入:万博1manbetx

pyenv
ans = PythonEnvironment属性:版本:"3.8"可执行文件:"C:\Users\家乡\AppData\Local\Programs\Python\Python38\pythonw.exe" Library: "C:\Users\家乡\AppData\Local\Programs\Python\Python38\ Python38 .dll" Home: "C:\Users\家乡\AppData\Local\Programs\Python\Python38"状态:NotLoaded ExecutionMode: OutOfProcess

的值版本属性为空,则您没有可用的受支持版本。万博1manbetx有关安装Python的详细信息,请参见配置您的系统使用Python

访问Python标准库模块MATLAB

MATLAB与机器上的Python解释器交互,使您可以访问所有标准库内容。例如,创建一个Python列表数据类型。

Res = py.list({“Name1”“Name2”“Name3”})
res = Python列表,没有属性。['Name1', 'Name2', 'Name3']

MATLAB识别Python对象并自动将MATLAB单元格数组转换为适当的Python类型。

你可以在一个对象上调用Python方法。的可用方法列表对象类型方法(py.list).例如,更新列表res使用Python附加函数。

res.append (“Name4”) res
res = Python列表,没有属性。['Name1', 'Name2', 'Name3', 'Name4']

要转换列表变量为MATLAB变量,调用细胞在清单上字符在列表的元素上。

Mylist = cellfun(@char,cell(res),“UniformOutput”假)
mylist = 1×4单元格数组{'Name1'} {'Name2'} {'Name3'} {'Name4'}

显示Python文档在MATLAB

您可以在MATLAB中显示Python函数的帮助文本。例如:

py.help (“list.append”
list: list中method_descriptor的帮助。追加=追加(…)L.append(object) ->无——将对象追加到end

输入时完成制表符py。不显示可用的Python功能。有关更多信息,请参见Python函数帮助

创建列表、元组和字典类型

该表显示了用于创建的语句列表元组,dict类型。左边的语句是从Python解释器运行的。右边的语句是MATLAB语句。

Python列表- - - - - -[]

MATLABpy.list

>>>['罗伯特','玛丽','约瑟夫'] > > py.list({“罗伯特”、“玛丽”,“约瑟夫”})
> > >[[1、2],[3,4]] > > py.list ({py.list ([1, 2]), py.list ([3,4])})

Python元组- - - - - -()

MATLABpy.tuple

>>>(“罗伯特”,19岁,“生物学”) > > py.tuple({“生物学”“罗伯特”,19日})

Pythondict- - - - - -{}

MATLABpy.dict

>>>{“罗伯特”:357,“乔”:391,“玛丽”:229} > > py.dict (pyargs(…
“玛丽”“罗伯特”,357年,229年,“乔”,391年)


有关传递关键字参数的信息,请参见pyargs

方法和函数的优先顺序

如果Python类定义了与Python类型的MATLAB转换器方法同名的方法,MATLAB将调用该Python方法。这意味着您不能在该类的对象上调用MATLAB转换器方法。

例如,如果一个Python类定义了字符方法,该语句调用Python方法。

char (obj)

使用MATLAB字符函数,类型:

char (py.str (obj))

访问其他Python模块

您可以在MATLAB中使用自己的Python代码和第三方模块。内容必须在Python路径下。安装第三方模块会将内容放到Python路径上。如果您创建自己的模块,则负责将它们放到路径上。

有关示例,请参见调用自定义Python模块

Python例子

如需示例代码,您可以在MATLAB实时编辑器中打开,请在从MATLAB调用Python页面。有关搜索MATLAB示例的信息,请参见MATLAB代码示例

有关使用在线数据集的示例,请参见此MathWorks博客文章

另请参阅

相关的话题