Удаление графических объектов

Как удалить графические объекты

Удалите графические объекты с помощью 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

См. также

Похожие темы