调用Python时®函数,MATLAB®将MATLAB数据转换为最能代表Python语言数据的类型。
MATLAB输入参数类型- |
结果python. |
例子 |
---|---|---|
|
|
在MATLAB中使用Python数值变量 |
|
|
z=复合物(1,2);py.厘米极性(z) ans = python元组,没有属性。(2.23606797749979,1.1071487177940904) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在matlab中使用python str变量 |
|
|
py.list({string(缺少),'价值'})
ans = python列表,没有属性。[无,'值] |
|
|
|
结构 |
|
在matlab中使用python dict变量 |
Python对象 - |
|
|
功能手柄 |
|
将Python函数传递给Python映射函数 |
MATLAB输入参数类型- |
结果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显示有关于如何继续的提示的消息。如果问题可能是由于将矩阵或多维数组传递为参数,则执行以下操作。
检查Python函数的文档,并找出参数的预期类型。
在MATLAB中创建该类型的Python对象,并将其传递给Python函数。
例如,假设以下代码返回错误。
a = [1 2;3 4];py.pyfunc(a)
如果文件的文件pyfunc
指定预期类型是Pytype.
,然后尝试此转换:
py.pyfunc(Pytype.(一种))
如果错误仍然存在,则通过检查Python异常中的其他信息来确定根本原因。
MATLAB会自动将这些从Python返回的数据类型转换为MATLAB类型将Python类型显式转换为Matlab类型。
python返回类型,如python所示 |
产生的matlab类型 - 标量 |
---|---|
|
|
|
复杂的 |
|
|
|
|
所有其他Python类型 - |
Python对象 - |
使用这些MATLAB函数将Python数据类型转换为Matlab类型。
python返回类型或协议,如matlab所示 |
MATLAB转换功能 |
例子 |
---|---|---|
|
|
在matlab中使用python 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' |
|
|
|
|
|
|
|
|
|
你可以转换 |
|
在MATLAB中使用Python数值变量例如,在MATLAB中使用Python Integer数组类型。 |
序列协议;例如, |
|
在MATLAB中使用Python列表变量 在matlab中使用python元组变量 |
映射协议;例如, |
|
在matlab中使用python dict变量 |
Python不支持这些MATLAB类型。万博1manbetx
多维的烧焦
或单间牢房
阵列
结构阵列
稀疏阵列
明确的
那桌子
那容器.map.
那日期时间
类型
Matlab对象
元类
(PY
。班级
)