Удалите графические объекты с помощью delete
функция. Передайте указатель на объект в качестве аргумента в delete
. Например, удалите текущие системы координат и все объекты, содержащиеся в осях, оператором.
delete(gca)
Если вы хотите удалить несколько объектов, передайте массив указателей в delete
. Для примера, если h1
, h2
, и h3
являются указателями на графические объекты, которые необходимо удалить, объединить указатели в один массив.
h = [h1,h2,h3]; delete(h)
При закрытии рисунка удаляются все объекты, содержащиеся на рисунке. Для примера создайте гистограмму.
f = figure; y = rand(1,5); bar(y)
Теперь рисунок содержит оси и штриховые объекты.
ax = f.Children; b = ax.Children;
Закройте рисунок:
close(f)
MATLAB® удаляет каждый объект.
f
f =
handle to deleted Figure
ax
ax =
handle to deleted Axes
b
b =
handle to deleted Bar
При удалении графического объекта MATLAB не удаляет переменную, содержащую указатель на объект. Однако переменная становится недопустимым указателем, поскольку объект, на который она ссылалась, больше не существует.
Вы можете явно удалить графические объекты, используя delete
функция или путем закрытия рисунка, содержащей графические объекты. Для примера создайте гистограмму.
f = figure; y = rand(1,5); b = bar(y);
Закройте рисунок, содержащую штриховой график.
close(f)
Переменные указатели все еще существуют после закрытия рисунка, но графические объекты больше не существуют.
whos
Name Size Bytes Class f 1x1 104 matlab.ui.Figure b 1x1 104 matlab.graphics.chart.primitive.Bar y 1x5 40 double
Использовать isgraphics
для определения валидности указателя на графический объект.
isgraphics(b)
ans = 0
Вы не можете получить доступ к свойствам с недопустимой переменной handle.
h.FaceColor
Invalid or deleted object.
Чтобы удалить переменную, используйте clear
функция.
clear h