MATLAB から Python 機能を直接呼び出す
MATLAB® から Python® ライブラリの機能を直接呼び出したり、Python ステートメントを直接実行したりできます。
Python モジュールへのアクセス
Python ライブラリにアクセスするには、py.
接頭辞を Python の名前に追加します。以下に例を示します。
py.list({'This','is a','list'}) % Call built-in function list py.textwrap.wrap('This is a string') % Call wrap function in module textwrap
詳細については、MATLAB から Python モジュールへのアクセス - 入門を参照してください。
Python コードの実行
Python インタープリターの Python ステートメントを MATLAB コマンド プロンプトから実行するには、関数 pyrun
を使用します。この関数を使用すると、MATLAB 型を入力として渡して一部またはすべての変数を MATLAB に返すコードを実行できます。たとえば、Python インタープリターで次のステートメントを実行するとします。
>>> l = ['A', 'new', 'list']
このステートメントを MATLAB から実行するには、pyrun
を使用します。結果を MATLAB 変数 myList
に返すには、"l"
を outputs
引数として追加します。
myList = pyrun("l = ['A', 'new', 'list']", "l");
Python スクリプトの実行
Python スクリプトを MATLAB コマンド プロンプトから呼び出すには、関数 pyrunfile
を使用します。pyrun
の場合と同じ方法で MATLAB データを渡し、変数を返します。たとえば、次のステートメントで mklist.py
ファイルを作成します。
# Python script file mklist.py:
s = 'list'
L = ['A', 'new', s]
このスクリプトを MATLAB から実行します。
myListFile = pyrunfile("mklist.py", "L")
myListFile = Python list with no properties. ['A', 'new', 'list']
Python 変数へのアクセス
py.
接頭辞を使用すると、MATLAB でモジュール全体をインポートし、Python コードのすべての関数とクラスにアクセスできます。ただし、関数 pyrun
または pyrunfile
を使用して Python コードを実行する場合、Python データにアクセスするには、outvars
引数を使用して Python オブジェクトを MATLAB に明示的に返す必要があります。
関数 pyrun
および関数 pyrunfile
に関する制限
pyrun
またはpyrunfile
を使用して定義された Python クラスのインスタンスを MATLAB に返す場合、このクラスは変更できません。クラス定義を変更する必要がある場合は、インタープリターのセッションを再起動します。terminate(pyenv) pyenv(ExecutionMode="OutOfProcess")
あるいは、
"InProcess"
の場合は MATLAB を再起動します。関数
pyrun
および関数pyrunfile
は、メソッドを通じて他のローカル変数で初期化されたローカル変数をもつクラスをサポートしません。このような使用法の場合は、モジュールを作成し、py.
接頭辞を使用してそのモジュールにアクセスします。Python 型ヒントに基づく型変換は、Python コードが入力として提供される
pyrun
、pyrunfile
、または [Python コードの実行] タスクではサポートされていません。