在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,这是我制作的最后一个情节。
答案 0 :(得分:9)
如果您在绘图之前知道要在以后再次删除它,则可以保存plot
和delete
之后返回的句柄。
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);