Invoke a Compiled MATLAB Function Asynchronously
Asynchronously invoke a compiled MATLAB® function that uses the Python® object returned from the initialize() function by
passing background = True.
future = <my_client>.<function_name>(<in_args>, nargout=<nargs>,
stdout=<out_stream>,
stderr=<err_stream>,
background=True)my_client— Name of object returned frominitialize().function_name— Name of the function to invokein_args— Comma-separated list of input arguments.nargs— Number of results expected from the server.out_stream— PythonStringIOobject receiving the console outputerr_stream— PythonStringIOobject receiving the error output
When the background keyword is set to True, the
MATLAB function is placed into a processing queue and a Python
Future object is returned. You use the Future
object to retrieve the results when the MATLAB function is finished processing.
To invoke the MATLAB function c1,c2= copy(o1,o2) from the package
copier asynchronously, use the following code:
>>> 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()Tip
You can cancel asynchronous requests using the cancel() method
of the Future object.