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