主要内容

异步调用编译后的 MATLAB 函数

通过传递 background = True,异步调用一个编译后的 MATLAB® 函数,该函数使用从 initialize() 函数返回的 Python® 对象。

future = <my_client>.<function_name>(<in_args>, nargout=<nargs>,
                                 stdout=<out_stream>,
                                 stderr=<err_stream>,
                                 background=True)
  • my_client - 从 initialize() 返回的对象的名称。

  • 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=True)
>>> while !resultFuture.done():
...    time.sleep(1)
...
>>> result = resultFuture.result()

提示

您可以使用 Future 对象的 cancel() 方法取消异步请求。

另请参阅

主题