メインコンテンツ

パッケージ化された MATLAB 関数の呼び出し

Python® クライアントと MATLAB® Production Server™ インスタンス間の接続は matlab.production_server.client.MWHttpClient オブジェクトにカプセル化されます。クライアント接続オブジェクトを使用して、デプロイされた MATLAB 関数を呼び出します。

result1,...resultN = my_client.archive_name.function_name(in_args,
                                                          nargout=nargs)
  • my_client — クライアント接続オブジェクトの名前

  • archive_name — 関数をホストするデプロイ可能なアーカイブの名前

  • function_name — 呼び出す関数の名前

  • in_args — 入力引数のコンマ区切りリスト

  • nargs — 予期されるサーバーからの結果の数。既定値は 1 です。

メモ

呼び出す関数が出力を返す場合、関数呼び出しの左側の各変数には単一の戻り値が入ります。関数呼び出しの左側に指定した変数の数が nargs より少ない場合、最後にリストされた変数に残りの結果のリストが含まれます。以下に例を示します。

result1, result2 = myMagic.triple(5,nargout=3)

この場合、result1 には単一の値が格納され、result2 には 2 つの値を含むリストが格納されます。

複数の出力を返す MATLAB 関数の呼び出し

個別変数としての複数の結果の受け取り

デプロイ可能なアーカイブ copier から MATLAB 関数 c1,c2 = copy(o1,o2) を呼び出すには、以下のコードを使用します。

>>> import matlab
>>> from production_server import client
>>> my_client = client.MWHttpClient("http://localhost:9910")
>>> c1,c2 = my_client.copier.copy("blue",10,nargout=2)
>>> print(c1)
"blue"
>>> print(c2)
10

変数 c1c2 には単一の戻り値が入ります。

単一のオブジェクトとしての複数の結果の受け取り

デプロイ可能なアーカイブ copier から MATLAB 関数 copies = copy(o1,o2) を呼び出すには、以下のコードを使用します。

>>> import matlab
>>> from production_server import client
>>> my_client = client.MWHttpClient("http://localhost:9910")
>>> copies = my_client.copier.copy("blue",10,nargout=2)
>>> print(copies)
["blue",10]

変数 copies には、すべての戻り値を含むリストが入ります。

ゼロ個の出力を返す MATLAB 関数の呼び出し

デプロイ可能なアーカイブ mutations から MATLAB 関数 mutate(m1, m2, m3) を呼び出すには、以下のコードを使用します。

import matlab
from production_server import client

my_client = client.MWHttpClient("http://localhost:9910")

m1 = matlab.double(...)
m2 = matlab.double(...)
m3 = matlab.double(...)

my_client.mutations.mutate(m1,m2,m3)

単一の出力を返す MATLAB 関数の呼び出し

デプロイ可能なアーカイブ mutations から MATLAB 関数 result = mutate(m1, m2, m3) を呼び出すには、以下のコードを使用します。

import matlab
from production_server import client

my_client = client.MWHttpClient("http://localhost:9910")

m1 = matlab.double(...)
m2 = matlab.double(...)
m3 = matlab.double(...)

result = my_client.mutations.mutate(m1,m2,m3)

参考

トピック