На самом деле, функция ЗАКРЫТЬ дает вам несколько более «мощных» опций:
close all hidden
close all force
И если по какой-то причине они не работают, у вас есть один «ядерный» вариант: удалить все фигуры, в том числе со скрытыми ручками, как предложено в ЗАКРЫТЬ и WAITBAR документация:
set(0,'ShowHiddenHandles','on');
delete(get(0,'Children'));
Возможно, вам будет проще создать собственную вспомогательную функцию, которая сделает это за вас (и вернет состояние 'ShowHiddenHandles'
в состояние по умолчанию 'off'
), чтобы у вас не было такого большого количества набрать:
function killEmAll
set(0,'ShowHiddenHandles','on');
delete(get(0,'Children'));
set(0,'ShowHiddenHandles','off');
end
... И даже третий вариант - попытаться вообще избежать этой проблемы (если это позволяет организация вашего кода), используя onCleanup
objects ! Если вы запустите следующий пример кода, панель ожидания должна быть автоматически удалена для вас, когда вы нажмете CTRL-C из бесконечного цикла:
function runprocess
h = waitbar(1/4, 'la la la...');
waitObject = onCleanup(@() delete(h));
process();
end
function process
i = 1;
while (i > 0)
i = i + 1;
end
end