在 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,这是我制作的最后一个图。
在 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,这是我制作的最后一个图。
如果您在绘制之前知道以后要再次删除它,则可以保存返回的句柄,然后再将其plot
删除delete
。
figure;
h1 = plot([0 1 2], [3 4 5]);
delete(h1);
尝试
items = get(gca, 'Children');
delete(items(end));
(或者也许delete(items(1))
)
@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);