8

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

谢谢

编辑:

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,这是我制作的最后一个图。

4

3 回答 3

9

如果您在绘制之前知道以后要再次删除它,则可以保存返回的句柄,然后再将其plot删除delete

figure;
h1 = plot([0 1 2], [3 4 5]);
delete(h1);
于 2012-07-10T18:15:26.880 回答
8

尝试

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

(或者也许delete(items(1))

于 2012-07-10T18:05:37.987 回答
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);
于 2012-07-10T18:37:07.390 回答