删除图形对象
如何删除图形对象
使用 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