matlab
Python模块
的matlab
Python®模块提供了MATLAB的数组类来表示数组®MATLAB数值类型Python变量,数组可以在Python和MATLAB之间传递。
MATLAB类的Python模块
您可以使用MATLAB数值数组的Python代码导入Python包和必要调用构造函数。例如:构造函数的名称表明MATLAB数值类型。您可以将MATLAB数组作为输入参数传递给从Python调用MATLAB函数。当一个MATLAB函数返回一个数值数组作为输出参数,数组返回给Python。
你可以使用一个可选的初始化一个数组
初始化器
包含数字的输入参数。的初始化器
参数必须是一个Python序列类型等列表
或者一个元组
或其他序列类型。你可以使用一个可选的初始化一个数组
向量
输入参数包含输入大小1)×(n。如果你使用向量
,你不能使用初始化器
。可选
大小
输入参数设置初始化数组的大小。创建多维数组,指定初始化器
包含多个序列的数字,或指定大小
多维。您可以创建一个MATLAB的复数通过设置可选的is_complex
关键字参数真正的
。您可以使用定制类型初始化MATLAB在Python中数组的两倍。自定义类型应该执行Python缓冲协议。例如
ndarray
在NumPy。
类 |
构造函数调用在Python中 |
例子 |
---|---|---|
|
matlab.double(initializer=None|vector=None, size=None, is_complex=False) |
> > > = matlab.double (4) > > > b = matlab。双(向量=[33]11日22日) > > > c = matlab。双([[10 20],[30 40]]) > > > d = matlab。双(初始值设定项=[(10、20),[30 40]],大小= (2,2)is_complex = False) > > > e = matlab。双(向量=范围(0,20)) > > > f = matlab。双(向量= [x * x x范围(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))) > > > = matlab。单(向量=[33]11日,22日,is_complex = False) |
|
matlab.int8(初始值设定项= = |向量没有问题,大小= None, is_complex = False) |
> > > = matlab.int8([[11, 22岁,33],[44岁,55岁,66]]) > > > = matlab.int8(向量=[33]11日,22日,is_complex = False) |
|
matlab.int16(初始值设定项= = |向量没有问题,大小= None, is_complex = False) |
> > > e = matlab.int16 ([[1 + 2 j, 3 + 4 j], [5, 6]], is_complex = True) |
|
matlab.int32(初始值设定项= = |向量没有问题,大小= None, is_complex = False) |
> > > = matlab.int32(初始值设定项=[[11,22岁,33],[44、-55、66]],大小= [2、3],is_complex = False) |
|
matlab.int64(初始值设定项= = |向量没有问题,大小= None, is_complex = False) |
> > > = matlab.int64([[11, 22岁,33],[44、-55、66]]) |
|
matlab.uint8(initializer=None|vector=None, size=None, is_complex=False) |
> > > = matlab。uint8([[11, 22岁,33],[44岁,55岁,66]]) > > > b = matlab。uint8(向量=[33]11日,22日,is_complex = False) |
|
matlab.uint16(initializer=None|vector=None, size=None, is_complex=False) |
> > > = matlab。uint16(初始值设定项=[[33]11日,22日,[44岁,55岁,66]],大小= [2、3],is_complex = False) > > > b = matlab。uint16(向量=[33]11日,22日,is_complex = False) > > > c = matlab。uint16([[11, 22岁,33],[44岁,55岁,66]]) |
|
matlab.uint32(initializer=None|vector=None, size=None, is_complex=False) |
> > > = matlab。uint32(向量=[33]11日,22日,is_complex = False) > > > b = matlab。uint32([[11, 22岁,33],[44岁,55岁,66]]) |
|
matlab.uint64(initializer=None|vector=None, size=None, is_complex=False) |
> > > = matlab。uint64([[11, 22岁,33],[44岁,55岁,66]]) > > > b = matlab。uint64(向量=[33]11日,22日,is_complex = False) |
|
matlab.logical(initializer=None|vector=None, size=None)一个 |
> > > = matlab。逻辑(初始值设定项=[[真,假,真],[真的,真的,真的]],大小= [2、3]) > > > b = matlab。逻辑([[真,假,真],[真的,真的,真的]]) > > > c = matlab。逻辑(向量=[真,假,真]) > > > d = matlab。逻辑((真的,假,真的)) |
一个逻辑值不能做成一个复数数组。 |
的属性和方法MATLAB类的matlab
Python包
所有MATLAB数组创建包的构造函数有以下属性和方法:
属性
属性名 | 描述 | 例子 |
---|---|---|
|
一个元组的整数代表一个数组的维度 |
> > > = matlab.int16 ([[1, 2, 3], [4、5、6]]) > > >。大小(2、3) |
|
一个整数代表大小字节的数组的一个元素 |
> > > = matlab.int16 () > > >。itemsize2 >>> b = matlab.int32() >>> b.itemsize 4 |
方法
方法名称 | 目的 | 例子 |
---|---|---|
克隆() |
返回一个新的不同的对象与内容相同的原始对象的内容 |
> > > = 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]] > > >。重塑(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。形状(2、3) |
创建一个MATLAB与N个元素数组
当您创建一个数组N
元素,大小是1 -N
因为它是一个MATLAB数组。
导入matlab = matlab.int8([1、2、3、4、5])打印(A.size) (1、5)
初始化器是一个包含5个数字的Python列表。MATLAB数组大小1-by-5,元组的表示(1、5)
。
多维MATLAB中的数组Python
在Python中,您可以创建多维数组MATLAB的数值类型。使用两个Python列表创建一系列2-by-5 MATLAB的双打漂浮。
导入matlab = 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-by-5数组。
print (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是从零开始的索引。当你访问元素的MATLAB Python会话中的数组,使用从零开始的索引。
这个例子展示了如何多维MATLAB数组的索引。
一个= 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 iterable包含数字。
您可以指定片转让,如本例所示。
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
你可以重塑一个MATLAB数组在Python重塑
方法。输入参数,大小
必须是一个序列,不会改变数组中元素的数量。使用重塑
改变一个1-by-9 MATLAB 3 x3的数组。
导入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
在NumPy MATLAB Python中的数组初始化。自定义类型应该执行Python缓冲协议。
导入matlab导入numpy nf = numpy.array ([[1.1, 2, 2, 3.3], [4.4, 5.5, 6.6]]) md = matlab.double ni32 = numpy (nf)。阵列([[1,2,3],[4、5、6]],dtype = int32) mi32 = matlab.int32 (ni32)
相关的话题
- 在Python中使用MATLAB数组
- 从Python MATLAB传递数据(MATLAB)