在MATLAB中,如何清除绘制到图形的最后一个东西?

时间:2012-07-10 18:02:36

标签: matlab matlab-figure

在MATLAB中,我将许多不同的向量绘制成图形。现在,我想要做的只是撤消我绘制到该图上的 last 向量,而不清除其他所有内容。如何实现这一目标?可以完成吗?

由于

编辑:

figure(1); clf(1);
N = 100;
x = randn(1,N);
y = randn(1,N);
z = sin(1:N);
plot(x); hold on;
plot(y,'r');
plot(z,'k'); 

现在,我想删除情节z,这是我制作的最后一个情节。

3 个答案:

答案 0 :(得分:9)

如果您在绘图之前知道要在以后再次删除它,则可以保存plotdelete之后返回的句柄。

figure;
h1 = plot([0 1 2], [3 4 5]);
delete(h1);

答案 1 :(得分:8)

尝试

items = get(gca, 'Children');
delete(items(end));

(或者delete(items(1))

答案 2 :(得分:3)

@groovingandi给出的答案是最常用的方法。您还可以使用FINDALL根据对象的属性查找句柄:

h = findall(gca, 'type', 'line', 'color', 'k');
delete(h);

这将在当前轴上搜索所有黑色的线对象(绘图生成线对象)。

要在图9中执行此操作,您需要找到图9中的轴。图形手柄只是图形编号,因此:

ax = findall(9, 'axes');
h = findall(ax, 'type', 'line', 'color', 'k');
delete(h);