В этом примере показано, как вызвать 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