当调用Python时®MATLAB函数,®将MATLAB数据转换为最能代表Python语言的数据类型。
MATLAB输入参数类型- |
结果Python |
例子 |
---|---|---|
|
|
在MATLAB中使用Python数值变量 |
复杂的 |
|
z =复杂(1、2);py.cmath.polar (z) ans=不带属性的Python元组。(2.23606797749979,1.1071487177940904) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在MATLAB中使用Python str变量 |
|
|
py.list({字符串(缺少),“价值”})
ans=不带属性的Python列表。[无,'值'] |
|
|
|
结构 |
|
在MATLAB中使用Python dict变量 |
Python对象- |
|
|
函数句柄 |
|
将Python函数传递给Python映射函数 |
MATLAB输入参数类型- |
产生的Python类型 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
当您将实数值或逻辑数组传递给Python函数时,MATLAB会自动将数据转换为Python函数memoryview
如果Python函数的输出实现Python缓冲协议,并且是实数值或逻辑输出,则MATLAB显示:
实际的Python类型
基础数据
相应的MATLAB转换函数。使用此函数将Python对象完全转换为MATLAB数组。
例如,假设您在模块中调用Python函数pyModule
返回一个类型为的变量pyType
使用这些值:
p=PythonpyType: 8 1 6 3 5 7 4 9 2使用details函数查看Python对象的属性。使用双函数转换为MATLAB数组。
转换P
一个MATLAB矩阵P
类型:
P=双(P)
P=3×3816357492
如果需要有关的Python属性的特定信息P
类型:
详情(p)
py。pyModule.pyType带有属性的句柄:T:[1×1 py。pyModule.pyType]基本类型:[1×1 py.NoneType]c类型:[1×1 py。pyModule.core.\u internal.\u ctypes]数据:[1×3 py.memoryview]数据类型:[1×1 py。pyModule.dtype]标志:pyModule.flagsobj]平的:[1×1 py。pyModule.flatiter]imag:[1×1 py。pyModule.pyType]itemsize:[1×1 py.int]n字节:[1×1 py.int]ndim:[1×1 py.int]real:[1×1 py。pyModule.pyType[1×2 py.]元组] size: [1×1 py.int] strides: [1×2 py.tuple] Methods, Events, Superclasses
如果Python模块在其__医生__
属性,然后MATLAB链接到该信息。
使用Pythonmemoryview
对象允许Python读取MATLAB数据而无需复制MATLAB数据。和有关信息。memoryview
对象和缓冲区协议,在https://www.python.org/doc/.
Python不支持MATLAB复杂和稀疏数组。万博1manbetx看到不支万博1manbetx持的MATLAB类型.
如果Python函数需要特定的Python多维数组类型,则MATLAB将显示一条消息,其中包含有关如何继续的提示。如果问题可能是由于将矩阵或多维数组作为参数传递所致,请执行以下操作。
检查Python函数的文档并找出参数的预期类型。
在MATLAB中创建一个该类型的Python对象,并将其传递给Python函数。
例如,假设以下代码返回错误。
a=[12;34];py.pyfunc(a)
如果pyfunc
指定所需的类型为pyType
,然后尝试此转换:
py.pyfunc (pyType(a) )
如果错误仍然存在,则通过检查Python异常中的附加信息来确定根本原因。
MATLAB自动将这些从Python返回的数据类型转换为MATLAB类型。要转换其他类型,请参见显式地将Python类型转换为MATLAB类型.
Python返回类型,如Python中所示 |
生成的MATLAB类型-标量 |
---|---|
|
|
|
复杂的 |
|
|
|
|
所有其他Python类型- |
Python对象- |
使用这些MATLAB函数将Python数据类型转换为MATLAB类型。
Python返回类型或协议,如MATLAB中所示 |
MATLAB转换函数 |
例子 |
---|---|---|
|
|
在MATLAB中使用Python str变量 |
|
|
|
|
|
|
反对 |
|
py.help ('datetime.date.\uuu str\uuuuu')
datetime.date:datetime.date.\uuuuu str\uuuu=\uuuuuu str\uuu(self,/)返回str(self)。 d=py.datetime.date(...int32(2020)、int32(3)、int32(4));字符(d)
ans = ' 2020-3-04 ' |
|
|
|
|
|
|
|
|
|
您可以转换 |
|
在MATLAB中使用Python数值变量,例如,在MATLAB中使用Python整数数组类型。 |
协议序列;例如, |
|
在MATLAB中使用Python列表变量 在MATLAB中使用Python元组变量 |
映射协议;例如, |
|
在MATLAB中使用Python dict变量 |
Python不支持这些MATLAB类型。万博1manbetx
多维字符
或细胞
数组
结构阵列
复数、标量整数或数组
稀疏阵列
分类
,表格
,集装箱。地图
,datetime
类型
MATLAB对象
meta.class
(派克
.班
)