メインコンテンツ

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 コードが入力として提供される pyrunpyrunfile、または [Python コードの実行] タスクではサポートされていません。

参考

|

トピック

外部の Web サイト