
How to determine if points fall above an arbitrary line?
    13 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    James Akula
 el 12 de Mayo de 2020
  
    
    
    
    
    Comentada: James Akula
 el 12 de Mayo de 2020
            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 comentarios
Respuesta aceptada
  KSSV
      
      
 el 12 de Mayo de 2020
        
      Editada: KSSV
      
      
 el 12 de Mayo de 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')

Más respuestas (0)
Ver también
Categorías
				Más información sobre Measurements and Feature Extraction en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!