主要内容

马铃薯草Python数据类型的映射

当调用Python时®MATLAB函数,®将MATLAB数据转换为最能代表Python语言的数据类型。

将标量值传递给Python

MATLAB输入参数类型-
仅标量值

结果python.py。类型

例子

双倍的(真正的)
单身的(真正的)

浮动

在MATLAB中使用Python数值变量

双倍的(复杂的)
单身的(复杂的)

复杂的

z =复杂(1、2);py.cmath.polar (z)
ans = python元组,没有属性。(2.23606797749979,1.1071487177940904)

INT8.
uint8.
int16
uint16
int32

int

UINT32.
INT64.
UINT64

int
(版本2.7)

浮动(“nan”)

浮动(“INF”)

细绳标量
字符向量

str

在matlab中使用python str变量

< >失踪价值细绳

没有一个

py.list({string(缺少),'价值'})
ans = python列表,没有属性。[没有,'值']

逻辑

赃物

结构

dict

在matlab中使用python dict变量

Python对象 -PY类型

类型

功能手柄@PY模块函数,只对Python函数有效

模块函数

将Python函数传递给Python映射函数

通过向量Python

MATLAB输入参数类型-
1——- - - - - -N.向量

产生的Python类型

双倍的(真正的)

array.array (' d ')

单身的(真正的)

array.array (f)

INT8.(真正的)

Array.Array('B')

uint8.(真正的)

Array.Array('B')

int16(真正的)

Array.Array('H')

uint16(真正的)

Array.Array('H')

int32(真正的)

Array.Array('i')

UINT32.(真正的)

Array.Array('i')

INT64.(real) - Wind万博1manbetxows上的Python 2.7不支持®

Array.Array('Q')

UINT64(real) - Wind万博1manbetxows上的Python 2.7不支持

Array.Array('Q')

双倍的(复杂的)
单身的(复杂的)
INT8.(复杂的)
uint8.(复杂的)
int16(复杂的)
uint16(复杂的)
int32(复杂的)
UINT32.(复杂的)

memoryview

逻辑

memoryview

字符向量
细绳标量

str

字符数组包含大于127的值(仅2.7版)

unicode.

细胞向量

元组

传递矩阵和多维数组Python

Python语言提供了一种用于访问存储器缓冲区的协议,如存储在MATLAB阵列中的数据。MATLAB为MATLAB阵列实现此Python缓冲区协议,以便您可以直接从Python代码读取MATLAB阵列,以与MATLAB相同的过程,而无需复制数据。

许多Python函数直接使用来自Python的MATLAB数组,而不将其转换为本机Python类型。有些函数可能需要特定的类型,例如numpy.ndarray.,或可能会在数组中修改数据。这些功能可能接受MATLAB阵列并将数据复制到所需类型中。如果未通过所需类型,则其他功能可能会显示错误。要将数据传递给这些函数,首先从MATLAB数据创建所需的Python类型,然后将其传递给Python函数。例如,要创建数组P.传递给需要类型数据的Python函数numpy.array类型:

p = py.numpy.array(魔法(3))
p = python ndarray:8 1 6 3 5 7 4 9 2使用详细信息函数查看Python对象的属性。使用双重函数转换为MATLAB阵列。

Python不支持MATLAB稀疏数组。万博1manbetx看不支万博1manbetx持的matlab类型

故障排除参数错误

如果Python函数需要特定的Python多维数组类型,例如numpy.ndarray.然后,Matlab显示有关如何继续的提示的消息。如果问题可能是由于将矩阵或多维数组传递为参数,则执行以下操作。

  1. 检查Python函数的文档,找出参数的预期类型。

  2. 在MATLAB中创建一个该类型的Python对象,并将其传递给Python函数。

例如,假设以下代码返回错误。

a = [1 2;3 4];py.pyfunc(a)

如果是文件pyfunc指定预期类型是numpy.ndarray.,然后尝试此转换:

py.pyfunc (numpy.ndarray (a))

如果错误仍然存在,则通过检查Python异常中的附加信息来确定根本原因。

自动转换Python类型为马铃薯草类型

MATLAB自动将这些从Python返回的数据类型转换为MATLAB类型。要转换其他类型,请参见将Python类型显式转换为Matlab类型

python返回类型,如python中显示

Matlab类型 - 标量

浮动

双倍的

复杂的

复杂的双倍的

int(仅版本2.7)。

对于Python版本3.xint,您必须明确转换。看将Python类型显式转换为Matlab类型

INT64.

赃物

逻辑

所有其他Python类型 -类型

Python对象 -PY类型

显式转换Python类型为马铃薯草类型

如果Python函数的输出实现Python缓冲区协议,例如numpy.ndarray.,它是数字或逻辑的,然后matlab显示:

  • 实际的Python类型

  • 底层数据

  • 相应的MATLAB转换功能。使用此函数将Python对象完全转换为MATLAB阵列。

使用这些matlab函数将Python数据类型转换为Matlab类型。

python返回类型或协议,如matlab所示

MATLAB转换功能

例子

py.str.(版本3.x)

细绳
字符

在matlab中使用python str变量

py.str.(版本2.7)

细绳
字符
uint8.

py.unicode.

细绳
字符

对象__str__方法

字符

py.help ('datetime.date .__ str__'的)
帮助在DateTime.Date中的Wrapper_descriptor:datetime.date .__ str__ = __str __(self,/)返回str(self)。
d = py.datetime.date(......INT32(2020),INT32(3),INT32(4));CHAR(D)
ans = ' 2020-3-04 '

py.bytes.

uint8.

py.int

双倍的

INT64.

py.long.

双倍的

INT64.

py.array.array
py.numpy.ndarray.ndarray.
py.memoryview

您可以转换py.array.array任何格式和py.memoryview对象的MATLAB类型。

数字
双倍的
单身的
INT8.
uint8.
int16
uint16
int32
UINT32.
INT64.
UINT64

在MATLAB中使用Python数值变量例如,在MATLAB中使用Python Integer数组类型。

协议序列;例如,py.list.py.tuple

细胞

在MATLAB中使用Python列表变量
在matlab中使用python元组变量

映射协议;例如,py.dict

塑造

在matlab中使用python dict变量

例如,Python函数返回此数组P.

p = python ndarray:8 1 6 3 5 7 4 9 2使用详细信息函数查看Python对象的属性。使用双重函数转换为MATLAB阵列。

你可以把它转换成MATLAB矩阵P.打字:

p = double(p)
p = 3×3 8 1 6 3 5 7 4 9 2

如果您需要有关Python属性的特定信息P.类型:

细节(P)
py.numpy.ndarray句柄带有属性:基础:[1×1 py。没有一个类型] ctypes: [1×1 py.numpy.core._internal._ctypes] data: [1×3 py.memoryview] dtype: [1×1 py.numpy.dtype[float64]] flags: [1×1 py.numpy.flagsobj] flat: [1×1 py.numpy.flatiter] imag: [1×1 py.numpy.ndarray] itemsize: [1×1 py.int] nbytes: [1×1 py.int] ndim: [1×1 py.int] real: [1×1 py.numpy.ndarray] shape: [1×2 py.tuple] size: [1×1 py.int] strides: [1×2 py.tuple] Methods, Events, Superclasses

如果Python模块提供内容__doc__属性,然后matlab链接到该信息。

不支万博1manbetx持马铃薯草类型

Python不支持这些MATLAB类型。万博1manbetx

  • 多维字符细胞数组

  • 结构阵列

  • 稀疏阵列

  • 分类
    表格
    容器.map.
    datetime类型

  • matlab对象

  • meta.classPY班级的)

相关的话题