Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

pyrunfile

MATLAB から Python スクリプト ファイルを実行

R2021b 以降

    説明

    pyrunfile(file) は、file にある Python® ステートメントを実行します。

    関数 pyrun とは異なり、関数 pyrunfile を使用して Python ワークスペースに作成された変数は永続的ではありません。pyrunfile への後続の呼び出しは、この変数にアクセスできません。

    pyrunfile(file input) は、入力引数を指定して Python ステートメントを実行します。Python スクリプトはコマンド ライン引数を string として読み取ります。

    outvars = pyrunfile(file,outputs) は変数 lhs を割り当てます。また、この関数により、指定された Python コードへの入力として渡す MATLAB® ワークスペース変数を選択したり、スクリプトで処理された Python 変数から、すべてまたはユーザーが選択したサブセットを MATLAB に返したりできます。

    outvars = pyrunfile(file,outputs,pyName=pyValue) は、1 つ以上の名前と値のペアの引数を指定してコードを実行します。

    すべて折りたたむ

    hello.py ファイル内の Python ステートメントを呼び出します。

    次のステートメントから Python スクリプト hello.py を作成します。

    greeting = "hello"
    print(greeting)

    MATLAB コマンド ラインに出力を表示します。

    pyrunfile("hello.py")
    hello

    Python スクリプトを作成し、string を渡します。

    次のステートメントから greeting.py を作成します。

    import sys
    greeting = sys.argv[1]
    print(greeting)

    string をスクリプトに渡し、出力を表示します。

    pyrunfile("greeting.py 'hello world'")
    hello world

    MATLAB から Python スクリプトを実行し、スクリプトにより生成された変数を MATLAB に返します。

    次のステートメントから Python スクリプト makeList.py を作成します。

    l = ['A', 'new', 'list']

    スクリプトを実行してリストを作成し、MATLAB に変数 data で返します。

    data = pyrunfile("makeList.py", "l")
    data = 
      Python list with no properties.
    
        ['A', 'new', 'list']
    

    入力引数を受け取る Python スクリプトを呼び出します。

    次のステートメントから Python スクリプト addac.py を作成します。スクリプトは入力引数 x および y を受け取り、変数 z を返します。

    def add(a,c):
        b = a+c
        return b
    
    z = add(x,y)

    xy の値を渡します。MATLAB 変数 res で変数 z を返します。

    res = pyrunfile("addac.py","z",x=3,y=2)
    res = 5

    入力引数

    すべて折りたたむ

    Python 式またはステートメントを含む Python ファイル。string スカラーまたは文字ベクトルとして指定します。

    例: "test.py"

    Python 式またはステートメントを含み、コマンド ライン入力引数をもつ Python ファイル。string スカラーまたは文字ベクトルとして指定します。

    例: "test.py var"

    1 つ以上の Python 変数名。string 配列として指定します。変数はローカルまたはグローバルにできます。MATLAB は code の出力を outputs で名付けられた各変数に割り当て、outvars に値を返します。

    例: "L"

    Python code に渡される 1 つ以上の入力引数の名前と値。キーワードと値の引数として指定します。pyName が変数の Python 名で pyValue が割り当てられた値です。pyName1=pyValue1,...,pyNameN=pyValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

    例: x=3

    出力引数

    すべて折りたたむ

    1 つ以上の MATLAB ワークスペース変数名。code から有効な型として返されます。outvars の数は outvars 引数の数に対応します。Python データにアクセスする場合は、outvars を使用して MATLAB に Python オブジェクトを明示的に返さなければなりません。

    制限

    • pyrun または pyrunfile を使用して定義された Python クラスのインスタンスを MATLAB に返す場合、そのクラスを変更することはできません。クラス定義を変更する必要がある場合は、インタープリターのセッションを再起動します。

      terminate(pyenv)
      pyenv(ExecutionMode="OutOfProcess")

      あるいは、"InProcess" の場合は MATLAB を再起動します。

      関数 pyrun および関数 pyrunfile は、メソッドを通じて他のローカル変数で初期化されたローカル変数をもつクラスをサポートしません。このような使用法の場合は、モジュールを作成し、py. 接頭辞を使用してそのモジュールにアクセスします。

    バージョン履歴

    R2021b で導入