Main Content

Python での MATLAB 配列の使用

この例では、Python® で MATLAB® 配列を作成し、作成した配列を入力引数として MATLAB 関数 sqrt に渡す方法を説明します。

matlab パッケージは、Python で MATLAB 配列を作成するコンストラクターを提供します。Python 用 MATLAB エンジン API は、入力引数などの配列を MATLAB 関数に渡し、出力引数などの配列を Python に返すことができます。Python のシーケンス型から MATLAB の任意の数値型または logical 型の配列を作成できます。

Python list から MATLAB 配列を作成します。その配列で関数 sqrt を呼び出します。

import matlab.engine
eng = matlab.engine.start_matlab()
a = matlab.double([1,4,9,16,25])
b = eng.sqrt(a)
print(b)
[[1.0,2.0,3.0,4.0,5.0]]

エンジンは、1 行 5 列の配列 matlab.double である b を返します。

多次元配列を作成します。関数 magic は、2 次元の配列 matlab.double を Python に返します。for ループを使用して各行を別々の行に出力します (... が表示されたら、もう一度 Enter キーを押してループを閉じ、出力します)。

a = eng.magic(6)
for x in a: print(x)
... 
[35.0,1.0,6.0,26.0,19.0,24.0]
[3.0,32.0,7.0,21.0,23.0,25.0]
[31.0,9.0,2.0,22.0,27.0,20.0]
[8.0,28.0,33.0,17.0,10.0,15.0]
[30.0,5.0,34.0,12.0,14.0,16.0]
[4.0,36.0,29.0,13.0,18.0,11.0]

関数 tril を呼び出して a の下三角行列部分を取得します。各行を別々の行に出力します。

b = eng.tril(a)
for x in b: print(x)
... 
[35.0,0.0,0.0,0.0,0.0,0.0]
[3.0,32.0,0.0,0.0,0.0,0.0]
[31.0,9.0,2.0,0.0,0.0,0.0]
[8.0,28.0,33.0,17.0,0.0,0.0]
[30.0,5.0,34.0,12.0,14.0,0.0]
[4.0,36.0,29.0,13.0,18.0,11.0]

関連する例

詳細