Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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. 接頭辞を使用してそのモジュールにアクセスします。

参考

|

関連するトピック