当调用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({string(缺少),'价值'})
ans = python列表,没有属性。[没有,'值'] |
|
|
|
结构 |
|
在matlab中使用python dict变量 |
Python对象 - |
|
|
功能手柄 |
|
将Python函数传递给Python映射函数 |
MATLAB输入参数类型- |
产生的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显示有关如何继续的提示的消息。如果问题可能是由于将矩阵或多维数组传递为参数,则执行以下操作。
检查Python函数的文档,找出参数的预期类型。
在MATLAB中创建一个该类型的Python对象,并将其传递给Python函数。
例如,假设以下代码返回错误。
a = [1 2;3 4];py.pyfunc(a)
如果是文件pyfunc
指定预期类型是numpy.ndarray.
,然后尝试此转换:
py.pyfunc (numpy.ndarray (a))
如果错误仍然存在,则通过检查Python异常中的附加信息来确定根本原因。
MATLAB自动将这些从Python返回的数据类型转换为MATLAB类型。要转换其他类型,请参见将Python类型显式转换为Matlab类型。
python返回类型,如python中显示 |
Matlab类型 - 标量 |
---|---|
|
|
|
复杂的 |
|
|
|
|
所有其他Python类型 - |
Python对象 - |
如果Python函数的输出实现Python缓冲区协议,例如numpy.ndarray.
,它是数字或逻辑的,然后matlab显示:
实际的Python类型
底层数据
相应的MATLAB转换功能。使用此函数将Python对象完全转换为MATLAB阵列。
使用这些matlab函数将Python数据类型转换为Matlab类型。
python返回类型或协议,如matlab所示 |
MATLAB转换功能 |
例子 |
---|---|---|
|
|
在matlab中使用python 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 ' |
|
|
|
|
|
|
|
|
|
您可以转换 |
|
在MATLAB中使用Python数值变量例如,在MATLAB中使用Python Integer数组类型。 |
协议序列;例如, |
|
在MATLAB中使用Python列表变量 在matlab中使用python元组变量 |
映射协议;例如, |
|
在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链接到该信息。
Python不支持这些MATLAB类型。万博1manbetx
多维字符
或细胞
数组
结构阵列
稀疏阵列
分类
那表格
那容器.map.
那datetime
类型
matlab对象
meta.class
(PY
。班级
的)