Python 用 MATLAB エンジンの起動と停止
Python 用 MATLAB エンジンの開始
オペレーティング システム プロンプトで Python® を起動します。
matlab.engine
パッケージを Python セッションにインポートします。start_matlab
を呼び出し、新しい MATLAB® プロセスを開始します。関数start_matlab
は Python オブジェクトeng
を返しますが、このオブジェクトを使用すると、データを渡し、MATLAB で実行される関数を呼び出すことができます。
import matlab.engine
eng = matlab.engine.start_matlab()
起動オプションを使用したエンジンの起動
エンジンを起動し、オプションを入力引数の文字列として matlab.engine.start_matlab
に渡します。たとえば、MATLAB をデスクトップで起動します。
eng = matlab.engine.start_matlab("-desktop")
1 つの文字列で複数の起動オプションを定義できます。たとえば、デスクトップを起動し、数値表示形式を short
に設定します。
eng = matlab.engine.start_matlab("-desktop -r 'format short'")
エンジンを起動した後にデスクトップを起動することもできます。
import matlab.engine
eng = matlab.engine.start_matlab()
eng.desktop(nargout=0)
特定の MATLAB エンジン バージョンの起動
MATLAB エンジンの特定バージョンを起動するには、環境変数 PYTHONPATH
をパッケージの場所に設定します。Python では、インストールに使用されるフォルダーの名前が異なる場合があります。sys.path.append
コマンドで使用するインストール フォルダーをシステムで確認してください。インストールについては、Python のモジュール検索パスなどのドキュメンテーションを参照してください。
以下のコードでは、複数の MATLAB バージョンに対応したインストールで示したインストール手順の使用が前提となっています。MATLAB R2022a を呼び出すよう Windows® で PYTHONPATH
を設定するには、次のように入力します。
sys.path.append("c:\work\matlab22aPy39\Lib\site-packages")
Linux® または macOS の場合:
sys.path.append("/local/work/matlab22aPy39/Lib/site-packages")
インポートされた MATLAB のバージョンを確認するには、Python で次のように入力します。
import matlab
print(matlab.__file__)
非同期でのエンジンの起動
エンジンを非同期で起動します。MATLAB の起動時に、Python コマンド ラインでコマンドを入力することができます。
import matlab.engine
future = matlab.engine.start_matlab(background=True)
MATLAB インスタンスを作成して MATLAB で計算を実行できるようにします。
eng = future.result()
複数のエンジンの実行
それぞれのエンジンを個別に起動します。それぞれのエンジンが起動し、それぞれの MATLAB プロセスとやり取りを行います。
eng1 = matlab.engine.start_matlab()
eng2 = matlab.engine.start_matlab()
エンジンの停止
関数 exit
または quit
のいずれかを呼び出します。
eng.quit()
エンジンの実行中に Python を終了すると、Python はエンジンとその MATLAB プロセスを自動的に停止します。