
How to determine if points fall above an arbitrary line?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello all,
I am trying to find a way to determine if points are above or below an arbitrary line. For example, the code
numXY = randi([1, 19], 1);
lineXs = [0; sort(rand(numXY, 1) * numXY)];
lineYs = rand(size(lineXs));
Xs = rand([100, 1]) * max(lineXs);
Ys = rand(size(Xs));
figure
scatter(Xs, Ys, '.k')
hold on
plot(lineXs, lineYs, 'r')
axis tight
would produce something like

How to determine which of the points in (Xs, Ys) are above or below the red line defined by (lineXs, LineYs)?
Thank you in advance!
0 Commenti
Risposta accettata
KSSV
il 12 Mag 2020
Modificato: KSSV
il 12 Mag 2020
Read about inpolygon.
numXY = randi([1, 19], 1);
lineXs = [0; sort(rand(numXY, 1) * numXY)];
lineYs = rand(size(lineXs));
Xs = rand([100, 1]) * max(lineXs);
Ys = rand(size(Xs));
idx = inpolygon(Xs,Ys,[0 ; lineXs ; max(lineXs)],[ 0 ; lineYs ; 0]) ;
figure
% scatter(Xs, Ys, '.k')
hold on
plot(lineXs, lineYs, 'r')
plot(Xs(idx),Ys(idx),'*k')
plot(Xs(~idx),Ys(~idx),'*r')

Più risposte (0)
Vedere anche
Categorie
Scopri di più su Measurements and Feature Extraction in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!