主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

MATLAB배열을Python변수로표현하기

matlabPython®패키지는MATLAB®Python변숫자형배열을수로나타낼수있는배열클래스를제공하여,Python과MATLAB간에MATLAB배열을전달할수있도록합니다。

Python에서MATLAB배열생성하기

matlabPython패키지에서생성자(예:matlab.doublematlab.int32)를호출하여Python세션에서MATLAB숫자형배열을만들수있습니다。생성자의이름은MATLAB숫자형을나타냅니다。

Python에서MATLAB双형배열을초기화하기위해사용자지정유형을사용할수있습니다。사용자지정유형은이니셜라이저로사용할Python추상기본클래스集合。序列에서상속되어야합니다。

Python용MATLAB引擎API를사용하여호출된함수에MATLAB배열을입력인수로전달할수있습니다。MATLAB함수가출력인수로숫자형배열을반환할경우,엔진은이배열을Python에반환합니다。

숫자를포함하는선택적初始化器입력인수로배열을초기화할수있습니다。初始化器Python시는퀀스유형(예:列表元组또는기타시퀀스유형)이어야합니다。선택사항인大小입력인수는시퀀스의배열크기를설정합니다。여러개의숫자시퀀스를포함하도록初始化器를지정하거나,大小를다차원으로지정하여다차원배열을만들수있습니다。선택사항인is_complex입력인수를真正的로설정하여복소수로구성된MATLAB배열을만들수있습니다。matlab패키지는다음표에나와있는MATLAB배열생성자를제공합니다。

matlab클래스

Python에서의생성자호출

matlab.double

matlab.double(initializer=None, size=None, is_complex=False)

matlab.single

matlab.single(initializer=None, size=None, is_complex=False)

matlab.int8

matlab.int8(初始值设定项= None,大小= None, is_complex = False)

matlab.int16

matlab.int16(初始值设定项= None,大小= None, is_complex = False)

matlab.int32

matlab.int32(初始值设定项= None,大小= None, is_complex = False)

matlab.int64一个

matlab.int64(初始值设定项= None,大小= None, is_complex = False)

matlab.uint8

matlab.uint8(initializer=None, size=None, is_complex=False)

matlab.uint16

matlab.uint16(initializer=None, size=None, is_complex=False)

matlab.uint32

matlab.uint32(initializer=None, size=None, is_complex=False)

matlab.uint64b

matlab.uint64(initializer=None, size=None, is_complex=False)

matlab.logical

matlab.logical(initializer=None, size=None)c

matlab.object

생성자없음。함수가MATLAB객체에핸들객체나값객체를반환할경우엔진은matlab.object를Python에반환합니다。

一个在Windows的Python 2.7中,matlab.int64被转换为int32在MATLAB。同样,MATLAB不能返回int64数组到Python。

b在Windows的Python 2.7中,matlab.uint64被转换为uint32在MATLAB。同样,MATLAB不能返回auint64数组到Python。

c逻辑不能被做成一个复数数组。

N개의요소를가진배열을만들경우,이배열은MATLAB배열이므로크기는1×N이됩니다。

导入matlab。engine A = matlab.int8([1,2,3,4,5])
(1、5)

이니셜라이저는5개의숫자를포함하는Python列表입니다。MATLAB배열크기는1×5이고,元组에서는(1、5)로표시됩니다。

Python에서의MATLAB배열특성과메서드

matlab패키지생성자를사용하여생성된모든MATLAB배열은다음표에나와있는특성과메서드를갖습니다。

특성또는메서드

용도

大小

元组로반환되는배열의크기

重塑(大小)

시퀀스大小로지정된대로배열의형태변경

Python에서의다차원MATLAB배열

Python에서임의의숫자형으로구성된다차원MATLAB배열을만들수있습니다。두개의Python列表변수를사용하여双형으로구성된2×5 MATLAB배열을만듭니다。

导入matlab。engine 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)

Python에서MATLAB배열의요소참조하기

Python列表변수와元组변수의요소를참조할수있는것처럼MATLAB배열의요소를참조할수있습니다。

导入matlab。engine 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인덱싱은0부터시작합니다。MATLAB배Python세션에서열의요소에액세스할경우0부터시작하는인덱싱을사용하십시오。

다차원MATLAB배열의요소를참조합니다。

一个= matlab。双([[1、2、3、4、5],[6 7 8 9 10]])打印([1][2])
8.0

Python에서MATLAB배열슬라이싱

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이터레이블(Iterable)의데이터를할당할수있습니다。

다음과같이할당할슬라이스를지정할수있습니다。

A = matlab.int8 ([1, 2, 3, 4, 5, 6, 7, 8));如:A[0][2:4] = [30,40] 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배열의형태변경하기

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]]

관련항목