0
plot([x5],[y5],'-',xout_1(1),yout_1(1),'*',xout_1(2),yout_1(2),'*')

x5 =[125  -263]

y5 =[165  -375]

xout_1 =[135.5049    -127.0045]

yout_1 =[  179.6202  -185.7279]

这是我的程序的一个场景。
我将如何从线上丢弃点(135.5049,179.6202)?这些值因每次模拟而变化。
谁能告诉我如何删除这一点。

谢谢

4

1 回答 1

1

如果要删除检查点是否在线,请执行以下操作:

slope = (y5(2) - y5(1)) / (x5(2) - x5(1));  %# Slope of main line
thr = 1e-6;                                 %# Threshold to check points
idx = (abs((yout_1 - y5(1)) ./ (xout_1  - x5(1)) - slope) < thr) & ... 
   (xout_1 > min(x5) & xout_1 < max(x5));

现在idx是一个逻辑向量,在该点在线的位置具有“1”,否则为“0”。要绘制这些点,请使用逻辑索引:

plot(x5, y5, '-', xout_1(idx), yout_1(idx), '*')

这适用于任意数量的点,您可以添加任意数量的点,xout_1并且yout_1它只会绘制那些落在线上的点。

PS
不需要括起来x5y5括号,它们已经是一个向量。

于 2012-07-16T11:58:27.893 回答