exponenta event banner

Асинхронный вызов скомпилированной функции MATLAB

Асинхронный вызов скомпилированной функции MATLAB ®, использующей объект Python ®, возвращенный из initialize() функция путем передачи async = True.

future = my_client.function_name(in_args, nargout=nargs,
                                 stdout=out_stream,
                                 stderr=err_stream,
                                 async=True)
  • my_client - Имя объекта, возвращенного из initialize()

  • function_name - Имя вызываемой функции

  • in_args - Список входных аргументов, разделенных запятыми

  • nargs - Количество результатов, ожидаемых от сервера

  • out_stream - Питон StringIO объект, получающий выходные данные консоли

  • err_stream - Питон StringIO объект, получающий выходные данные ошибки

Когда async ключевое слово имеет значение True, функция MATLAB помещается в очередь обработки и Python Future возвращен объект. Вы используете Future объект для извлечения результатов после завершения обработки функции MATLAB.

Вызов функции MATLAB c1,c2= copy(o1,o2) из пакета copier асинхронно используйте следующий код:

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

Совет

Можно отменить асинхронные запросы с помощью cancel() способ Future объект.

Связанные темы