ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

matlab.engine.MatlabEngine クラス

パッケージ: matlab.engine

Python セッション内の計算エンジンとして MATLAB を使用する Python オブジェクト

説明

MatlabEngine クラスは Python® の計算エンジンとして MATLAB® プロセスを使用します。MATLAB 関数は呼び出しによって動的に起動するため、MatlabEngine オブジェクトのメソッドとして呼び出すことができます。また、定義した関数およびスクリプトを呼び出すこともできます。MatlabEngine オブジェクトに関連付けられている MATLAB ワークスペースにデータを送信したり、そこからデータを取得したりできます。

構築

関数 matlab.engine.start_matlab は、呼び出されるたびに MatlabEngine オブジェクトを作成します。matlab.engine.MatlabEngine() を呼び出して独自に MatlabEngine オブジェクトを作成する必要はありません。

メソッド

MatlabEngine オブジェクトのメソッドとして、任意の MATLAB 関数を呼び出すことができます。MATLAB 関数呼び出しによって、エンジンは関数を動的に呼び出します。この構文では関数呼び出しの位置、キーワードおよび出力の引数が示されています。

ret = MatlabEngine.matlabfunc(*args,nargout=1,background=False,stdout=sys.stsdout,stderr=sys.stderr)

matlabfunc は任意の MATLAB 関数の名前 (isprimesqrt など) に置き換えます。*args は呼び出した MATLAB 関数の入力引数と置き換えます。キーワード引数は次を指定します。

  • 関数が返す出力引数の数

  • エンジンが関数を非同期に呼び出すかどうか

  • エンジンが関数からの標準出力と標準エラーを送信する場所

構文に示されている既定値とは別の値を指定する場合にのみ、キーワード引数を指定します。

MATLAB 関数への入力引数

引数説明Python 型

*args

MATLAB 関数の入力引数。位置引数として指定

エンジンによって MATLAB 型に変換可能な任意の Python 型。

エンジンへのキーワード引数

引数説明Python 型

nargout

MATLAB 関数からの出力引数の数

int

既定値: 1

background

MATLAB 関数を非同期に呼び出すフラグの設定

backgroundasync のエイリアスです。ただし、Python Version 3.7 の場合、async はキーワードであり、引数としては使用できません。サポートされているすべてのバージョンの Python には、async の代わりに background 引数を使用してください。

bool

既定値: False

stdout

標準出力

StringIO.StringIO オブジェクト (Python 2.7)
io.StringIO オブジェクト (Python 3.x)

既定値: sys.stdout

stderr

標準誤差

StringIO.StringIO オブジェクト (Python 2.7)
io.StringIO オブジェクト (Python 3.x)

既定値: sys.stderr

出力引数

出力タイプ説明必須キーワード引数

Python 変数

MATLAB 関数からの 1 つの出力引数

既定値

tuple

MATLAB 関数からの複数の出力引数

nargout=n (このとき n > 1)

None

MATLAB 関数からの出力引数なし

nargout=0

FutureResult オブジェクト

MATLAB 関数への非同期呼び出しによる出力引数のプレースホルダー

background=True

例外

MatlabExecutionError

関数呼び出しの実行に失敗

RejectedExecutionError

MATLAB エンジンが終了

SyntaxError

関数呼び出しの構文エラー

TypeError

入力/出力引数のデータ型がサポートされていない

属性

workspace

MATLAB 変数への参照を含む Python 辞書。workspace を介して MATLAB 変数にデータを代入し、そこからデータを取得できます。作成した各 MATLAB 変数の名前は、workspace 辞書のキーとなります。workspace のキーは有効な MATLAB 識別子でなければなりません (たとえば、数字はキーとして使用できない)。

すべて折りたたむ

エンジンを使用して MATLAB 関数 sqrt を Python から呼び出します。

import matlab.engine
eng = matlab.engine.start_matlab()
ret = eng.sqrt(4.0)
print(ret)
2.0

Python で配列を作成して MATLAB ワークスペースに読み込みます。

import matlab.engine
eng = matlab.engine.start_matlab()
px = eng.linspace(0.0,6.28,1000)

px は MATLAB 配列ですが、eng.linspace はこれを Python に返しました。MATLAB で使用するため、配列を MATLAB ワークスペースに入れます。

eng.workspace['mx'] = px

エントリをエンジン workspace 辞書に追加するときに、MATLAB 変数も作成します。エンジンは、データを MATLAB データ型に変換します。

pi を MATLAB ワークスペースから取得して Python 変数にコピーします。

import matlab.engine
eng = matlab.engine.start_matlab()
eng.eval('a = pi;',nargout=0)
mpi = eng.workspace['a']
print(mpi)
3.14159265359

R2014b で導入