从MATLAB图中删除点和线

tim*_*tim 4 matlab plot handle line

我有一个用户可以点击进入的数字.点击的坐标将存储在两个向量x和y中.比我绘制新创建的点plot(x_new, y_new)并且还有一个上下文我为这个点创建了一个带有标签的点delete point.当点击它时,我只需删除xy矢量的相应值.

现在我需要以某种方式删除绘制的点.目前我这样做:当删除点时,我只需清除当前轴cla并立即重绘所有点.但不知何故,我觉得这不是最好的方法,因为我想在用户输入的点之间显示文本和一些连接线,并且当每次需要重绘所有东西时它可能会变得很慢...

所以我想知道最好的方法是什么?简单地存储每个点的返回绘图句柄并且在删除点时删除这些对象会不会很好?连接线和文本相同吗?

谢谢!

Nzb*_*buu 5

您可以使用XDataYData属性直接操作线的基础数据.

要删除索引处的点idx:

XData = get(h_line, 'XData');
YData = get(h_line, 'YData');
XData(idx) = [];
YData(idx) = [];
set(h_line, 'XData', XData, 'YData', YData);
Run Code Online (Sandbox Code Playgroud)