Main Content

Python からのユーザー スクリプトと関数の呼び出し

この例では、Python® から三角形の面積を計算する MATLAB® スクリプトを呼び出す方法を説明します。

MATLAB スクリプトまたは関数を呼び出すには、それを MATLAB パス上に配置します。他のオプションについては、Python パスへの関数の配置を参照してください。

この例では、現在のフォルダーにファイル名が triarea.m の MATLAB スクリプトを作成します。

b = 5;
h = 3;
a = 0.5*(b.* h)

ファイルを保存した後、Python を起動し、スクリプトを呼び出します。

import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)
a =

    7.5000

nargout=0 を指定します。スクリプトは出力を表示しますが、Python へ出力引数を返しません。

スクリプトを関数に変換し、関数をエンジンから呼び出します。ファイルを編集するために MATLAB エディターを開きます。

eng.edit('triarea',nargout=0)

3 つのステートメントを削除します。次に関数宣言を追加し、ファイルを保存します。

function a = triarea(b,h)
a = 0.5*(b.* h);

新しい関数 triarea をエンジンから呼び出します。

ret = eng.triarea(1.0,5.0)
print(ret)
2.5

関数 triarea は 1 つの出力引数のみを返すため、nargout を指定する必要はありません。

Python パスへの関数の配置

MATLAB 関数が MATLAB パス上にない場合は、現在のフォルダーから呼び出すことができます。たとえば、myFolder フォルダー内の MATLAB 関数 myFnc を呼び出すには、以下を入力します。

import matlab.engine
eng = matlab.engine.start_matlab()
eng.cd(r'myFolder', nargout=0)
eng.myFnc()

myFnc がフォルダー C:/work/myfiles 内にある場合は、このフォルダーを Python パスに追加できます。

eng.addpath("C:/work/myfiles")

すべてのサブフォルダーのパスを追加するには、以下を入力します。

s = eng.genpath('C:/work/myfiles')
eng.addpath(s, nargout=0)

参考

|

関連するトピック