Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Python からの MATLAB 関数の呼び出し

Python® 用の MATLAB® エンジン API を使用して、MATLAB パス上にある任意の MATLAB 関数を呼び出します。

MATLAB 関数がパス上にない場合は、現在のフォルダーから呼び出すことができます。たとえば、myFolder フォルダー内の MATLAB 関数 myFnc を呼び出すには、以下を入力します。

import matlab.engine
eng = matlab.engine.start_matlab()
eng.cd(r'myFolder', nargout=0)
eng.myFnc()

MATLAB 関数から出力引数を返す

MATLAB 関数は、直接呼び出して、その結果を Python に返すことができます。たとえば、数値が素数であるかどうかを判別する場合は、エンジンを使用して関数 isprime を呼び出します。

import matlab.engine
eng = matlab.engine.start_matlab()
tf = eng.isprime(37)
print(tf)
True

MATLAB 関数から複数の出力引数を返す

エンジンを使用して関数を呼び出すと、既定ではそのエンジンは単一の出力引数を返します。関数が複数の引数を返すことができるとわかっている場合、nargout 引数を使用して出力引数の数を指定します。

2 つの数値の最大公約数を判別するには、関数 gcd を使用します。gcd から 3 個の出力引数を返すように nargout を設定します。

import matlab.engine
eng = matlab.engine.start_matlab()
t = eng.gcd(100.0,80.0,nargout=3)
print(t)
(20.0, 1.0, -1.0)

MATLAB 関数から出力引数を返さない

MATLAB 関数の中には出力引数を返さないものがあります。関数から引数が返らない場合、nargout を 0 に設定します。

Python から MATLAB のヘルプ ブラウザーを開きます。

import matlab.engine
eng = matlab.engine.start_matlab()
eng.doc(nargout=0)

MATLAB 関数 doc はブラウザーを開きますが、出力引数は返しません。nargout=0 を設定しない場合、エンジンはエラーを発生します。

関数の実行の停止

MATLAB 関数の実行を停止するには、Ctrl+C を押します。制御が Python に戻ります。

MATLAB の演算子の代わりとなる関数名の使用

Python で等価の関数を呼び出すことにより、MATLAB の演算子を使用できます。演算子および関連付けられている関数名のリストについては、MATLAB 演算子と関連する関数を参照してください。たとえば、2 つの数値を加算するには、演算子 + の代わりに関数 plus を使用します。

import matlab.engine
eng = matlab.engine.start_matlab()
a = 2
b = 3
eng.plus(a,b) 

参考

|

関連するトピック