Этот пример показывает, как вызвать функцию MATLAB® sqrt
асинхронно от Python® и получить квадратный корень позже.
Механизм вызывает функции MATLAB синхронно по умолчанию. Управляйте возвращается к Python только, когда функция MATLAB заканчивается. Но механизм также может вызвать функции асинхронно. Управление сразу возвращается к Python, в то время как MATLAB все еще выполняет функцию. Механизм хранит результат в переменной Python, которая может быть осмотрена после того, как функция заканчивается.
Используйте аргумент background
, чтобы вызвать функцию MATLAB асинхронно.
import matlab.engine eng = matlab.engine.start_matlab() future = eng.sqrt(4.0,background=True) ret = future.result() print(ret)
2.0
Используйте метод done
, чтобы проверять если асинхронный законченный вызов.
tf = future.done() print(tf)
True
Чтобы остановить выполнение функции, прежде чем это закончится, вызовите future.cancel()
.
matlab.engine.FutureResult
| matlab.engine.MatlabEngine