matlab
Python模块
的matlab
Python®模块提供了数组类来表示MATLAB的数组®数值类型作为Python变量,以便MATLAB数组可以在Python和MATLAB之间传递。
MATLAB在matlab
Python模块
控件可以在Python代码中使用MATLAB数值数组
matlab
Python包并调用必要的构造函数。例如:导入matlab a = matlab。Double ([[1,2,3],[4,5,6]])
可以使用可选参数初始化数组
初始化器
包含数字的输入参数。的初始化器
参数必须是Python序列类型,例如列表
,元组
,或范围
.你可以指定初始化器
包含多个数字序列。可以使用可选参数初始化数组
向量
input参数,包含大小为1 × n的输入。如果你使用向量
,你不能使用初始化器
.您可以使用以下选项之一创建多维数组:
指定嵌套序列而不指定大小。
指定一个嵌套序列,并指定
大小
与嵌套序列的维度匹配的输入参数。指定一维序列和多维大小。在本例中,将假定序列以列-主序表示元素。
您可以通过设置可选选项来创建一个复数的MATLAB数组
is_complex
关键字参数真正的
.可以使用自定义类型在Python中初始化MATLAB数组。自定义类型应该实现Python缓冲区协议。一个例子是
ndarray
在NumPy。
类 |
Python中的构造函数调用 |
例子 |
---|---|---|
|
matlab.double(initializer=None|vector=None, size=None, is_complex=False) |
>>> a = matlab.double(4) >>> b = matlab。Double (vector=[11,22,33]) >>> c = matlab。双([[10 20],[30 40]]) >>> d = matlab。double(initializer=[[10,20],[30,40]], size=[2,2],is_complex=False) >>> e = matlab。双(向量=范围(0,20)) >>> f = matlab。Double(向量=[x*x for x in range(0,10,2)]) > > > g = matlab.double ([[1.1 + 2.4 j, 3 + 4 j], [5.3, 6.7]], is_complex = True) |
|
matlab.single(initializer=None|vector=None, size=None, is_complex=False) |
> > > = matlab.single ([[1.1, 2.2, 3.3), (4.4, 5.5, 6.6))) >>> a = matlab。single(vector=[11,22,33], is_complex=False) |
|
matlab.int8(initializer=None|vector=None, size=None, is_complex=False) |
>>> a = matlab.int8([[11,22,33],[44,55,66]]) >>> a = matlab.int8(vector=[11,22,33], is_complex=False) |
|
matlab.int16(initializer=None|vector=None, size=None, is_complex=False) |
> > > e = matlab.int16 ([[1 + 2 j, 3 + 4 j], [5, 6]], is_complex = True) |
|
matlab.int32(初始值=None|vector=None, size=None, is_complex=False) |
> > > = matlab.int32(初始值设定项=[[11,22岁,33],[44、-55、66]],大小=[2、3],is_complex = False) |
|
matlab.int64(初始值=None|vector=None, size=None, is_complex=False) |
> > > = matlab.int64([[33] 11日,22日,[44、-55、66]]) |
|
matlab.uint8(initializer=None|vector=None, size=None, is_complex=False) |
>>> a = matlab。Uint8 ([[11,22,33],[44,55,66]]) >>> b = matlab。uint8(vector=[11, 22, 33], is_complex=False) |
|
matlab.uint16(initializer=None|vector=None, size=None, is_complex=False) |
>>> a = matlab。uint16(initializer=[[11,22,33],[44,55,66]], size=[2,3], is_complex=False) >>> b = matlab。uint16(vector=[11, 22, 33], is_complex=False) >>> c = matlab。Uint16 ([[11,22,33],[44,55,66]]) |
|
matlab.uint32(initializer=None|vector=None, size=None, is_complex=False) |
>>> a = matlab。uint32(vector=[11,22,33], is_complex=False) >>> b = matlab。Uint32 ([[11,22,33],[44,55,66]]) |
|
matlab.uint64(initializer=None|vector=None, size=None, is_complex=False) |
>>> a = matlab。Uint64 ([[11,22,33],[44,55,66]]) >>> b = matlab。uint64(vector=[11,22,33], is_complex=False) |
|
matlab.logical(initializer=None|vector=None, size=None)一个 |
>>> a = matlab。logical(initializer=[[True, False, True],[True, True, True]], size=[2,3]) >>> b = matlab。logical([[True, False, True],[True, True, True]]) >>> c = matlab。logical(vector=[True, False, True]) >>> d = matlab。逻辑的([真,假,真]) |
一个逻辑不能被做成复数的数组。 |
性质和方法MATLAB在matlab
Python包
所有用包构造函数创建的MATLAB数组都具有以下属性和方法:
属性
属性名 | 描述 | 例子 |
---|---|---|
|
表示数组维数的整数元组 |
> > > = matlab.int16([[1, 2, 3],[4、5、6]])> > > a.size(2、3) |
|
以字节为单位表示数组元素大小的整数 |
>>> a = matlab.int16() >>> a.itemsize 2 >>> b = matlab.int32() >>> b.itemsize |
方法
方法名称 | 目的 | 例子 |
---|---|---|
克隆() |
返回一个新的不同的对象,其内容与原始对象的内容相同 |
> > > = matlab.int16([[1, 2, 3],[4、5、6]])> > > b = a.clone() > > >打印(b)[[1, 2, 3],[4、5、6]]> > > b [0] [0] = 100 > > > b matlab.int16([[100, 2, 3],[4、5、6]])> > >打印(a)[[1, 2, 3],[4、5、6]] |
真正的() |
以1 × n数组的形式返回复数元素的实部(以列为主序) |
> > > = matlab.int16 ([[1 + 10 j 2 + 20 j, 3 + 30 j],[4、5、6]],is_complex = True) > > >打印(a.real())(1、4、2、5、3、6) |
图像放大() |
以1 × n数组的形式返回复数元素的虚部(以列为主序) |
> > > = matlab.int16 ([[1 + 10 j 2 + 20 j, 3 + 30 j],[4、5、6]],is_complex = True) > > >打印(a.imag())[0 10 0, 20日,30日0] |
并且没有() |
返回不是复数的元素,以列为主的顺序,作为1 × n的数组 |
> > > = matlab.int16([[1, 2, 3],[4、5、6]])> > >打印(a.noncomplex())(1、4、2、5、3、6) |
|
根据尺寸重塑数组并返回结果 |
> > > = matlab.int16([[1, 2, 3],[4、5、6]])> > >打印(a)[[1, 2, 3],[4、5、6]]> > > a.reshape(3 2) > > >打印(a) [[1,5], [4 3], [2,6]] |
toarray () |
返回一个标准的Python |
> > > = matlab.int16([[1, 2, 3],[4、5、6]])> > >一个[0].toarray()数组(“h”,[1,2,3])> > > b = matlab.int16 ([[1 + 10 j 2 + 20 j, 3 + 30 j],[4、5、6]],is_complex = True) > > > b.real () .toarray()数组(“h”,[1、4、2、5、3、6]) |
tomemoryview () |
返回一个标准的Python |
> > > = matlab.int16([[1, 2, 3],[4、5、6]])> > > b = a.tomemoryview () > > > b.tolist()[[1, 2, 3],[4、5、6]]> > > b.shape(2、3) |
创建一个MATLABN元素数组
创建数组时N
元素,大小为1 × -N
因为它是MATLAB数组。
导入matlab A = matlab.int8([1,2,3,4,5]) print(A.size) (1,5)
初始化式是一个包含五个数字的Python列表。MATLAB数组的大小是1乘5,由元组表示(1、5)
.
多维MATLAB中的数组Python
在Python中,可以创建任何数字类型的多维MATLAB数组。使用嵌套的Python浮点数列表创建2 × 5的MATLAB双精度数数组。
导入matlab A = matlab。双([[1、2、3、4、5],[6 7 8 9 10]])打印(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数组,就像你可以索引Python列表和元组一样。
导入matlab = matlab.int8([1、2、3、4、5])打印([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
片MATLAB中的数组Python
您可以对MATLAB数组进行切片,就像对Python列表和元组进行切片一样。
导入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]])[0]=[10年,20年,30、40]打印(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))一个[0][2:4]=[30 40][0][6:8]=(70、80)打印(A)[[1、2、30、40、5、6,70,80]]
重塑MATLAB中的数组Python
控件可以在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]]
使用自定义类型初始化MATLAB数组
类型等自定义类型ndarray
用于在Python中初始化MATLAB数组。自定义类型应该实现Python缓冲区协议。
Import matlab Import numpy.array([[1.1, 2,2, 3.3], [4.4, 5.5, 6.6]]) md = matlab.double(nf) ni32 = numpy.array([1.1, 2,2, 3.3])阵列([[1,2,3],[4、5、6]],dtype = int32) mi32 = matlab.int32 (ni32)