非同期での Python からの MATLAB 関数の呼び出し
この例では、非同期で Python® から MATLAB® 関数 sqrt
を呼び出し、後で平方根を取得する方法を説明します。
既定ではエンジンは同期的に MATLAB 関数を呼び出します。制御が Python に返るのは、MATLAB 関数が終了している場合のみです。ただし、エンジンは非同期で関数を呼び出すこともできます。制御は即座に Python に返されますが、それでも MATLAB は関数を実行します。エンジンは、Python 変数に結果を保存し、関数の終了後に検査できます。
background
引数を使用して非同期に MATLAB 関数を呼び出します。
import matlab.engine
eng = matlab.engine.start_matlab()
future = eng.sqrt(4.0,background=True)
ret = future.result()
print(ret)
2.0
done
メソッドを使用して非同期に呼び出しが終了したかどうかを確認します。
tf = future.done()
print(tf)
True
関数が終了する前に関数の実行を停止するには、future.cancel()
を呼び出します。
参考
matlab.engine.MatlabEngine
| matlab.engine.FutureResult