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

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

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

Вы не можете получить доступ к свойствам с недопустимой переменной указателя.

h.FaceColor
Invalid or deleted object.

Чтобы удалить переменную, используйте clear функция.

clear h

Смотрите также

Похожие темы