的matlab
Python®包提供了数组类来表示MATLAB的数组®数字类型作为Python变量。还支持其他MATLAB类型,如金宝app从Python传递数据到MATLAB.
的调用构造函数,可以在Python会话中创建MATLAB数值数组matlab
Python包(例如,matlab.double
,matlab.int32
).构造函数的名称表明MATLAB数值类型。您可以将MATLAB数组作为输入参数传递给从Python调用的MATLAB函数。当MATLAB函数返回一个数字数组作为输出参数时,该数组将返回给Python。
你可以用一个可选的初始化数组初始化器
包含数字的输入参数。的初始化器
参数必须是Python序列类型,如列表或元组。可选大小
输入参数设置初始化数组的大小。若要创建多维数组,请指定初始化器
包含多个数字序列,或指定大小
多维。您可以通过设置可选参数来创建一个MATLAB的复数数组is_complex
关键字参数真正的
.的mlarray
模块提供了表中列出的MATLAB数组构造函数。
类 |
Python中的构造函数调用 |
MATLAB数值类型 |
---|---|---|
|
matlab.double( initializer=None, size=None, is_complex=False) |
双精度 |
|
matlab.single( initializer=None, size=None, is_complex=False) |
单精度 |
|
matlab.int8(initializer=None, size=None, is_complex=False) |
8位带符号整数 |
|
matlab.int16(initializer=None, size=None, is_complex=False) |
16位带符号整数 |
|
matlab.int32(initializer=None, size=None, is_complex=False) |
32位带符号整数 |
|
matlab.int64(initializer=None, size=None, is_complex=False) |
64位带符号整数 |
|
matlab.uint8( initializer=None, size=None, is_complex=False) |
8位无符号整数 |
|
matlab.uint16( initializer=None, size=None, is_complex=False) |
16位无符号整数 |
|
matlab.uint32( initializer=None, size=None, is_complex=False) |
32位无符号整数 |
|
matlab.uint64( initializer=None, size=None, is_complex=False) |
64位无符号整数 |
|
matlab.logical( initializer=None, size=None)[c] |
逻辑 |
[一个]在Windows上的Python中, [b]在Windows上的Python中, [c]逻辑不能被做成一个复数数组。 |
当你用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数组创建matlab
包构造函数的属性和方法如下表所示:
属性或方法 |
目的 |
---|---|
|
作为元组返回的数组的大小 |
|
按照序列指定的方式重塑数组 |
在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的数组。
print (A.size)(2、5)
您可以在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数组中建立索引。
一个= matlab。双([[1、2、3、4、5],[6 7 8 9 10]])打印([1][2])8.0
可以对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列表的行为不同。分割一个MATLAB数组返回一个视图而不是一个浅拷贝。
给定具有相同值的MATLAB数组和Python列表,将切片结果赋给不同的结果。
> > > mlarray = matlab.int32([[1、2],[3,4],[5,6]])> > > py_list =[[1、2],[3,4],[5,6]]> > > mlarray [0] = mlarray [0] [:: 1] > > > py_list [0] = py_list [0] [:: 1] > > > mlarray [0] matlab.int32 ([[2 2], [3, 4], [5, 6]]) > > > py_list [[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]]