Main Content

PythonMATLAB エンジンの起動と停止

PythonMATLAB エンジンの開始

  • オペレーティング システム プロンプトで 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 をパッケージの場所に設定します。以下のコードでは、前の節で示した設定の使用が前提となっています。MATLAB R2019b を呼び出すよう Windows で PYTHONPATH を設定するには、次のように入力します。

sys.path.append("c:\work\matlab19bPy36")

Linux® または macOS の場合:

sys.path.append("/local/work/matlab19bPy36")

インポートされた MATLAB のバージョンを確認するには、Python で次のように入力します。

import matlab
print(matlab.__file__)

Python では、インストールに使用されるフォルダーの名前が異なる場合があります。たとえば、Python では、MATLAB エンジンをインストールする前にサブフォルダー lib/site-packages が作成されることがあります。sys.path.append コマンドで使用するフォルダーをシステムで確認してください。

非同期でのエンジンの起動

エンジンを非同期で起動します。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 プロセスを自動的に停止します。

参考

関連するトピック