的matlab
Python®包提供数组类来表示MATLAB的数组®数值类型作为Python变量,以便MATLAB数组可以在Python和MATLAB之间传递。
中调用构造函数,可以在Python会话中创建MATLAB数值数组matlab
Python包(例如,matlab.double
,matlab.int32
).构造函数的名称表示MATLAB数值类型。
可以在Python中使用自定义类型初始化MATLAB双数组。自定义类型应该继承自Python抽象基类集合。序列
用作初始化式。
您可以将MATLAB数组作为输入参数传递给使用Python的MATLAB引擎API调用的函数。当MATLAB函数返回一个数字数组作为输出参数时,引擎将该数组返回给Python。
可以使用可选参数初始化数组初始化器
包含数字的输入参数。初始化器
必须是Python序列类型,例如列表
,元组
,或其他序列类型。可选大小
Input参数从序列中设置数组大小。可以通过指定来创建多维数组初始化器
包含多个数字序列,或通过指定大小
是多维的。您可以通过设置可选选项来创建一个复数的MATLAB数组is_complex
输入参数真正的
.的matlab
包提供了表中列出的MATLAB数组构造函数。
|
Python中的构造函数调用 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
没有构造函数。当函数向MATLAB对象返回句柄或值对象时,引擎返回 |
[一个]在Windows上的Python 2.7中, [b]在Windows上的Python 2.7中, [c]逻辑不能被做成复数的数组。 |
创建数组时N
元素,大小为1 × -N
因为它是MATLAB数组。
导入matlab。引擎A = matlab.int8([1,2,3,4,5])打印(A.size)
(1、5)
初始化式是Python列表
包含五个数字。MATLAB数组的大小为1 × 5,由元组
,(1、5)
.
创建的所有MATLAB数组matlab
包构造函数具有表中列出的属性和方法。
属性或方法 |
目的 |
---|---|
|
返回数组的大小 |
|
按顺序重新塑造数组 |
在Python中,可以创建任何数字类型的多维MATLAB数组。使用两个Python列表
变量来创建一个2 × 5的MATLAB双精度数组。
导入matlab。engine A = matlab。double([[1,2,3,4,5], [6,7,8,9,10]]) print(A)
[[1.0, 2.0, 3.0, 4.0, 5.0), (6.0, 7.0, 8.0, 9.0, 10.0)]
的大小
的属性一个
显示它是一个2 × 5的数组。
打印(A.size)
(2、5)
你可以索引到MATLAB数组,就像你可以索引到Python一样列表
和元组
变量。
导入matlab。引擎A = matlab.int8([1,2,3,4,5]) print(A[0])
(1、2、3、4、5)
MATLAB数组的大小为(1、5)
;因此,一个[0]
是(1、2、3、4、5)
.索引到数组中得到3。
打印([0][2])
3.
Python索引是从零开始的。在Python会话中访问MATLAB数组的元素时,使用从零开始的索引。
索引到多维MATLAB数组。
A = matlab。双([[1、2、3、4、5],[6 7 8 9 10]])打印([1][2])
8.0
你可以像分割Python一样分割MATLAB数组列表
和元组
变量。
导入matlab。引擎= matlab.int8([1、2、3、4、5])打印([0][1:4])
(2、3、4)
您可以将数据分配给片。这段代码显示了来自Python的赋值列表
到数组的一个切片。
A = matlab.double([[1,2,3,4],[5,6,7,8]]);A[0] = [10,20,30,40] print(A)
[(10.0, 20.0, 30.0, 40.0), (5.0, 6.0, 7.0, 8.0)]
您可以从另一个MATLAB数组或任何包含数字的Python可迭代对象分配数据。
可以如下所示指定分配的切片。
A = matlab.int8([1,2,3,4,5,6,7,8]);A[0][2:4] = [30,40] A[0][6:8] = [70,80] print(A)
40[[1、2、30日,5日,6日,70年,80]]
请注意
对MATLAB数组进行切片与对Python进行切片的行为不同列表
.切片MATLAB数组返回一个视图,而不是一个浅拷贝。
给定一个MATLAB数组和一个Python列表
使用相同的值,分配切片会产生不同的结果,如下面的代码所示。
= matlab.int32([[1、2],[3,4],[5,6]])L =[[1、2],[3,4],[5,6]]一个[0]= [0][::1)L L[0] =[0][:: 1)打印(A)
[[2 2], [3, 4], [5, 6]]
打印(左)
[[2,1], [3,4], [5,6]]
控件可以在Python中重塑MATLAB数组重塑
方法。输入参数大小
必须是一个保留元素数量的序列。使用重塑
将1 × 9的MATLAB数组变为3 × 3。
导入matlab。引擎= matlab.int8 ([1, 2, 3, 4, 5, 6, 7, 8, 9]) A.reshape((3,3))打印(A)
[[1、4、7],[2、5、8],[3、6、9]]