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)
参考
matlab.engine.MatlabEngine
| matlab.engine.FutureResult