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

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

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

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

Похожие темы