このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
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.
接頭辞を使用してそのモジュールにアクセスします。