Main Content

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

コンパイルされた MATLAB 関数の非同期での呼び出し

background = True を渡して、関数 initialize() から返された Python® オブジェクトを使用するコンパイルされた MATLAB® 関数を非同期で呼び出します。

future = my_client.function_name(in_args, nargout=nargs,
                                 stdout=out_stream,
                                 stderr=err_stream,
                                 background=True)
  • my_clientinitialize() から返されたオブジェクトの名前。

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

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

  • nargs — 予期されるサーバーからの結果の数。

  • out_stream — コンソール出力を受け取る Python StringIO オブジェクト

  • err_stream — エラー出力を受け取る Python StringIO オブジェクト

background キーワードが True に設定されている場合、MATLAB 関数は処理キューに配置され、Python Future オブジェクトが返されます。MATLAB 関数の処理が完了したら、Future オブジェクトを使用して結果を取得します。

パッケージ copier の MATLAB 関数 c1,c2= copy(o1,o2) を非同期で呼び出すには、以下のコードを使用します。

>>> import mutations
>>> import matlab
>>> myMutator = mutations.initialize()
>>> m1 = matlab.double([1,2,3])
>>> m2 = matlab.double([10,20,30])
>>> m3 = matlab.double([100,200,300])
>>> resultFuture = myMutator.mutate(m1,m2,m3, background=Truea)
>>> while !resultFuture.done():
...    time.sleep(1)
...
>>> result = resultFuture.result()

ヒント

Future オブジェクトの cancel() メソッドを使用すると、非同期リクエストをキャンセルできます。

関連するトピック