exponenta event banner

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

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

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

См. также

Связанные темы