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)?每次模拟都会改变这些值 任何人都可以告诉我如何删除这一点。
由于
答案 0 :(得分: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
添加任意多个点,并且它只会绘制掉落的点数在线。
P.S
没有必要将x5
和y5
括在括号中,它们已经是一个向量。