的matlab
Python®包提供了数组类来表示MATLAB的数组®数值类型作为Python变量。也支持其他MATLAB类型,如所列金宝app从Python传递数据到MATLAB.获取关于安装matlab
Python包,看到安装一个MATLAB Compiler SDK Python包.
函数的构造函数可以在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乘1N
因为这是一个MATLAB数组。
import 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
您可以像切片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]])[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]]