
How to determine if points fall above an arbitrary line?
11 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
KSSV
2020 年 5 月 12 日
編集済み: KSSV
2020 年 5 月 12 日
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')

その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Measurements and Feature Extraction についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!