主要内容

通过MATLAB数据Python

当调用一个Python®MATLAB函数,®将MATLAB数据转化为最能代表Python语言的数据类型。在MATLAB使用Python数据信息,请参阅从Python函数返回处理数据

通过标量值Python

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

产生的Pythonpy。类型

例子

(真正的)
(真正的)

浮动

使用Python在MATLAB数值变量

(复杂的)
(复杂的)

复杂的

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

int8
uint8
int16
uint16
int32

int

uint32
int64
uint64

int

浮动(“nan”)

浮动(正)

字符串标量
字符向量

str

在MATLAB中使用Python str变量

<失踪>价值字符串

没有一个

py.list({字符串(丢失),“价值”})
ans = Python列表没有属性。(没有,“价值”)

逻辑

bool

结构

dict

在MATLAB中使用Python dict类型变量
datetime

py.datetime.datetime

与Python使用MATLAB datetime类型
持续时间

py.datetime.timedelta

使用MATLAB持续时间与Python类型

Python对象,py类型

类型

函数处理@py模块函数Python函数只

模块函数

通过Python函数Python map函数

通过向量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(“我”)

uint32(真正的)

array.array(“我”)

int64(真正的)

array.array(问)

uint64(真正的)

array.array(问)

(复杂的)
(复杂的)
int8(复杂的)
uint8(复杂的)
int16(复杂的)
uint16(复杂的)
int32(复杂的)
uint32(复杂的)

memoryview

逻辑

memoryview

字符向量
字符串标量

str

细胞向量

元组

通过矩阵和多维数组Python

Python语言提供了一个协议来访问内存缓冲区的数据存储在一个MATLAB数组。MATLAB实现这个Python为MATLAB数组缓冲区协议,这样你可以阅读MATLAB数组直接从Python代码,在MATLAB中运行的进程,没有复制数据。

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

p = py.numpy.array(魔法(3))
p = Python ndarray: 8 1 6 3 5 7 4 9 2使用细节功能查看Python对象的属性。使用双MATLAB函数转换为一个数组。

MATLAB稀疏阵列在Python中不支持。万博1manbetx看到不支万博1manbetx持的MATLAB类型

故障诊断参数错误

如果一个Python函数期望等特定的Python多维数组类型numpy.ndarray,然后用MATLAB显示一条消息,提示该如何行动。如果这个问题可能是因为传递矩阵或多维数组作为参数,然后执行以下操作。

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

  2. 在MATLAB中创建一个该类型的Python对象,通过Python函数。

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

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

如果文档pyfunc指定预期的类型numpy.ndarray,然后试试这个转换:

py.pyfunc (numpy.ndarray (a))

如果错误仍然存在,那么检查额外信息来确定问题的根源在Python例外。

不支万博1manbetx持的MATLAB类型

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

  • 多维字符细胞数组

  • 结构数组

  • 稀疏阵列

  • 分类类型

  • 类型

  • containers.Map类型

  • MATLAB的对象

  • meta.class(py)

相关的例子

更多关于