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