Задачи очистки после завершения функции
cleanupObj = onCleanup(
создает объект, который, когда уничтожено, выполняет функциональный cleanupFun
)cleanupFun
. MATLAB® неявно очищает все локальные переменные при завершении функции, ли нормальным завершением или принудительным выходом, таким как ошибка или Ctrl+C.
Если вы ссылаетесь или передаете cleanupObj
вне вашей функции, затем cleanupFun
не запускается, когда эта функция завершает работу. Вместо этого это запускается каждый раз, когда MATLAB уничтожает объект.
Избегайте использования вложенных функций во время очистки. MATLAB может очистить переменные, используемые во вложенных функциях, прежде чем функция очистки попытается читать от них.
Если ваша программа будет содержать несколько объектов очистки, MATLAB не гарантирует порядка, что это уничтожает эти объекты. Если порядок ваших вопросов функций очистки, задайте один onCleanup
объект для всех задач.
Если вы сохраняете onCleanup
объект, MATLAB выводит предупреждение и не сохраняет cleanupFun
задача очистки.