绘制线段后将其删除很困难。您可以通过以下代码看到该线由一个 MATLAB 对象组成:
x = 1:10;
y = 1:10;
H = plot(x, y, '-o');
get(H, 'children')
ans =
空矩阵:0×1
我们可以看到该行没有子项,因此没有可以删除的“子部分”。然而,我们可以使用一些厚颜无耻的技巧来尝试达到相同的效果。
分别绘制两条线
...使用hold on
。参见维克多·雨果的回答。这是实现我们目标的正确方法。
将两条单独的线合二为一
MATLAB 不会绘制具有 NaN 值的点。通过修改输入向量,您可以使 MATLAB 跳过一个点以给出折线的效果:
x = [0 1 2 2 3 4 5 6 7 8 9];
y = [0 1 2 nan 3 4 5 6 7 8 9];
plot(x, y, '-o');
这相当于绘制一条从 [0, 0] 到 [2, 2] 的线,跳过下一个点,然后再次从 [3, 3] 开始并继续到 [9, 9]。
“擦除”该行的一部分
这是最糟糕的方法,但如果您不介意更改输入数组,那么这是一种廉价的方法。首先绘制线:
x = 1:10; y = 1:10;
plot(x, y, '-o');
现在在您要擦除的部分上绘制一条白线:
hold on
plot([2 3], [2 3], 'w');
正如您所看到的,结果看起来不太正确,并且如果您尝试对图表执行其他操作,结果会很糟糕。简而言之,我不推荐这种方法,但在绝望的时候它可能会派上用场!