主要内容

马铃薯python数据类型映射

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

将标量值传递给python

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

结果python.皮耶。类型

例子

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

浮动

在MATLAB中使用Python数值变量

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

复杂的

z=复合物(1,2);py.厘米极性(z)
ans = python元组,没有属性。(2.23606797749979,1.1071487177940904)

INT8.
uint8.
int16
uint16
int32

int

UINT32
INT64.
UINT64

int
(仅限2.7版)

浮动(“nan”)

Inf

浮动(“INF”)

细绳标量子
烧焦向量

str.

在matlab中使用python str变量

价值细绳

没有一个

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

逻辑

BOOL.

结构

字典

在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.(真实)-Windows上万博1manbetx的Python 2.7不支持®

Array.Array('Q')

UINT64(真实)-Windows上万博1manbetx的Python 2.7不支持

Array.Array('Q')

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

记忆视图

逻辑

记忆视图

烧焦向量
细绳标量子

str.

烧焦包含大于127的值的数组(仅限2.7版)

unicode.

单间牢房向量

元组

将矩阵和多维数组传递给python

当您将数字或逻辑数组传递给Python函数时,MATLAB会自动将数据转换为Python函数记忆视图目的。如果Python函数的输出实现Python缓冲区协议并且是数字或逻辑,则MATLAB显示:

  • 实际的Python类型

  • 底层数据

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

例如,创建文件test.py包含此代码:

def returndata(数据):返回数据

通过MATLAB阵列返回数据,类型:

m =魔术(3);p = py.test.returndata(m)

              

转化P.到Matlab矩阵P.,类型:

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

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

细节(P)
py.test.memoryView句柄带有属性:T:[1×1 py.test.memoryview]基础:[1×1 py.nonetype] ctypes:[1×1 py.test.core._internal._ctypes]数据:[1×3 py.memoryview] dtype:[1×1 py.test.dtype]标志:[1×1 py.test.flagsobj] flat:[1×1 py.tiest.flatiter] imag:[1×1 py。test.memoryview] itemsize: [1×1 py.int] nbytes: [1×1 py.int] ndim: [1×1 py.int] real: [1×1 py.test.memoryview] shape: [1×2 py.tuple] size: [1×1 py.int] strides: [1×2 py.tuple] Methods, Events, Superclasses

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

使用python.记忆视图对象允许Python读取MATLAB数据,而无需复制MATLAB数据记忆视图对象和缓冲区协议,搜索这些术语https://www.python.org/doc/

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

故障排除参数错误

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

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

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

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

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

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

py.pyfunc(Pytype.(一种))

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

自动转换python类型到马铃薯类型

MATLAB会自动将这些从Python返回的数据类型转换为MATLAB类型将Python类型显式转换为Matlab类型

python返回类型,如python所示

产生的matlab类型 - 标量

浮动

双倍的

复杂的

复杂的双倍的

int(仅限版本2.7)。

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

INT64.

BOOL.

逻辑

所有其他Python类型 -类型

Python对象 -PY类型

显式转换python类型到马铃薯类型

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

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

MATLAB转换功能

例子

py.str.(版本3.x)

细绳
烧焦

在matlab中使用python str变量

py.str.(版本2.7)

细绳
烧焦
uint8.

py.unicode.

细绳
烧焦

对象__str__方法

烧焦

救命啊('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.array.array任何格式和记忆视图对象设置为所需的MATLAB类型。

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

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

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

单间牢房

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

映射协议;例如,白纸黑字

塑造

在matlab中使用python dict变量

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

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

  • 多维的烧焦单间牢房阵列

  • 结构阵列

  • 稀疏阵列

  • 明确的
    桌子
    容器.map.
    日期时间类型

  • Matlab对象

  • 元类PY班级

相关话题