matlab
のPythonモジュ,ル
matlab
のPython®モジュ,ルには,PythonとMATLAB®間でMATLAB配列を渡すことができるように,MATLAB数値型の配列をPython変数として表す配列クラスがあります。
matlab
のPythonモジュ,ル内のMATLABクラス
matlab
のPythonパッケージをインポートして必要なコンストラクターを呼び出すことにより,Pythonコード内でMATLABの数値配列を使用できます。以下に例を示します。导入matlab a = matlab。Double ([[1,2,3],[4,5,6]])
数値を含むオプションの入力引数
初始化器
を使用して,配列を初期化できます。引数初始化器
は,列表
や元组
などのPythonシ,ケンス型でなければなりません。サesc escズが1行n列の入力を含むオプションの入力引数
向量
を使用して,配列を初期化できます。向量
を使用する場合,初始化器
は使用できません。オプションの入力引数
大小
は,初期化される配列のサ。多次元配列を作成するには,複数の数値シ,ケンスを含むように初始化器
を指定するか,大小
が多次元になるように指定します。オプションのキ,ワ,ド引数is_complex
を真正的
に設定することで,複素数からなるmatlab配列を作成できます。Pythonでカスタム型を使用して,MATLABの双配列を初期化できます。このカスタム型は,Pythonバッファ,プロトコルを実装している必要があります。たとえば,NumPyの
ndarray
です。
|
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
のPythonパッケ,ジ内にあるMATLABクラスのプロパティとメソッド
matlab
パッケージコンストラクターで作成されたすべての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) |
N個の要素をもMATLAB配列の作成
N
個の要素をも配列を作成する場合,これはmatlab配列であるため,サズは1行N
列になります。
导入matlab A = matlab.int8([1,2,3,4,5]) print(A.size) (1,5)
初期化子は,5個の数値を含むPythonリストです。Matlab配列のサ计算器ズが1行5列であることが,(1、5)
というタプルで示されています。
Pythonでの多次元MATLAB配列
Pythonでは,MATLAB任意の数値型の多次元。Pythonの2 つの浮動小数点リストを使用して、2 行 5 列の double の 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)
PythonでのMATLAB配列への@ @ンデックス付け
Pythonのリストとタプルにインデックスを付けることができるのと同様に,MATLAB配列にもインデックスを付けることができます。
导入matlab = matlab.int8([1、2、3、4、5])打印([0])(1、2、3、4、5)
Matlab配列のサescズは(1、5)
であるため,一个[0]
は(1、2、3、4、5)
になります。配列にインデックスを付けて 3 を取得します。
打印([0][2])3
Pythonのンデックスは0ベスです。Pythonセッションにおいて MATLAB 配列の要素にアクセスするときは、0 ベースのインデックスを使用します。
次の例は,多次元matlab配列にescンデックスを付ける方法を示しています。
A = 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]])[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]]
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]]
カスタム型を使用したmatlab配列の初期化
NumPyの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)