Main Content

删除图形对象

如何删除图形对象

使用 delete 函数删除图形对象。将对象句柄作为参量传递给 delete。例如,使用以下语句可删除当前坐标区以及坐标区中包含的所有对象。

delete(gca)

如果想要删除多个对象,可将句柄数组传递给 delete。例如,如果 h1h2h3 是您想要删除的图形对象的句柄,请将这些句柄串联成单个数组。

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

另请参阅

相关主题