主要内容

使用Python列表MATLAB变量

这个例子展示了如何使用Python®列表变量在MATLAB®。

调用一个Python函数,该函数接受列表输入参数,创建一个py.list变量。要将列表转换为MATLAB变量,请调用细胞函数,然后为列表中的每个元素调用适当的转换函数。

调用接受的Python函数列表输入参数

Pythonlen函数返回容器中的项数,其中包括列表对象。

py.help (“兰”
模块builtins中内置函数len的帮助:len(obj, /)返回容器中的项数。

调用os.listdir创建一个Python列表命名为P

P = py.os.listdir(“C: \ Program Files \ MATLAB”);类(P)
Ans = 'py.list'

显示程序数。

py.len (P)
ans = Python int with properties:分母:[1×1 py.int] imag: [1×1 py.int]分子:[1×1 py.int] real: [1×1 py.int

显示一个元素。

P {2}
ans = Python str,没有属性。R2016b

索引到Python列表

使用MATLAB索引显示列表中的元素。类中的最后一个元素列表.MATLAB返回一个Python列表

P(结束)
ans =没有属性的Python列表。(“R2021a”)

类型中的列表也可以迭代循环。

n = P disp(n{1})结束
没有属性的Python str。R2014b没有属性的Python str。R2016b没有属性的Python str。R2017b没有属性的Python str。R2018b没有属性的Python str。R2019a没有属性的Python str。R2019b Python str,没有属性。R2020a没有属性的Python str。R2020b Python str,没有属性。R2021a

转换为Python列表类型到MATLAB类型

中显示的名称列表P使用MATLAB变量。调用细胞转换列表。该列表由Python字符串组成,因此调用字符函数转换单元格数组的元素。

cP = cell(P);

每个单元格元素名称都是一个Python字符串。

类(cP {1})
Ans = 'py.str'

将Python字符串转换为MATLAB数据。

mlP = string(cell(P));

显示名称。

n = 1:数字(cP) disp(mlP{n})结束
R2014b R2016b R2017b R2018b R2019a R2019b R2020a R2020b R2021a

在MATLAB中使用Python数字类型列表

一条巨蟒列表包含任何类型的元素,也可以包含混合类型的元素。MATLAB函数中使用的所有元素都假定Python列表是数字。

假设你有一个Python函数,返回一个列表的整数P.要运行此代码,请使用这些值创建变量。

P = py.list ({int32 (1) int32 (2), int32 (3), int32 (4)})
P = Python列表,没有属性。[1,2,3,4]

显示值的数字类型。

类(P {1})
Ans = 'py.int'

转换P到MATLAB单元格数组。

cP = cell(P);

转换单元格数组为的MATLAB数组

A = cellfun(@double,cP)
一个=1×41 2 3 4

读取嵌套元素列表类型

这段代码访问Python的一个元素列表变量包含列表元素。假设你有这个列表

矩阵= py。列表({{1, 2, 3, 4},{“你好”“世界”}, {9 10}});

显示元素“世界”,即at index(2, 2)

disp (char(矩阵{2}{2}))
世界

显示Python元素的步进范围

如果使用切片访问Python对象的元素,则Python中的格式为启动:停止:一步.在MATLAB中,语法为开始:步骤:停止

Li = py.list({“一个”“公元前”, 1 2“def”});李(1:2)
ans =没有属性的Python列表。['a', 1.0, 'def']