主要内容

访问Python模块从MATLAB- - - - - -开始

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

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

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

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

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

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

学习目标

本教程解释如何:

  • 检查计算机上的Python版本。

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

  • 显示Python模块的帮助。

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

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

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

  • 找到例子。

验证Python配置

要在MATLAB中使用Python,您的机器上必须安装一个受支持的Python版本金宝app。要验证你有一个受支持的版本,输入:金宝app

pyenv
可执行文件:“C:\Users\家乡Python当地\ AppData \ \程序\ \ Python38 \ pythonw.exe库:" C: \ \用户家乡Python当地\ AppData \ \程序\ \ Python38 \ python38.dll ": " C: \ \用户家乡\AppData\Local\Programs\Python\Python38" Status: NotLoaded ExecutionMode: OutOfProcess

如果版本属性为空,则没有支持的可用版本。金宝app有关安装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', ' nam4 ']

列表变量为MATLAB变量,调用细胞在名单上字符列表中的元素。

mylist = cellfun (@char、细胞(res),“UniformOutput”假)
mylist = 1×4 cell array {'Name1'} {'Name2'} {'Name3'} {'Name3'}

显示Python文档在MATLAB

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

py.help (“list.append”
list: list中method_descriptor的帮助。附加= append(…)L.append(object) ->无——append object to 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

>>> ('Robert', 19岁,'Biology') > > 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博客

另请参阅

相关的话题