How to find points between two intersecting lines?

1 visualización (últimos 30 días)
Niraj Bal Tamang
Niraj Bal Tamang el 22 de Mayo de 2021
Comentada: Niraj Bal Tamang el 26 de Mayo de 2021
I have two straight lines defined by equations (say) x+y=3 and 2x-3y=4. I have to find out the points which lies between these two lines in the xy plot as in the attached figure. Can anyone suggest me how can i find the points between two lines in a plot?
Thank You
  2 comentarios
Image Analyst
Image Analyst el 23 de Mayo de 2021
Those lines are not on your graph.
Niraj Bal Tamang
Niraj Bal Tamang el 23 de Mayo de 2021
Sorry. I just gave a random equations of straight line for assumption. I am attaching the whole code and variables if you want to give it a try. I am trying to get the points between each of those lines for classification.
scatter(usarea,slope);
set(gca,'xscale','log','yscale','log');
xlabel('Upstream Drainage Area (sq km)');
ylabel('Slope (m/m)');
hold on
xline(7*10^5,'Color','r','LineStyle','--');%vertical line
hold on
plot([1.1*10^6 10^10],[0.15 0.15],'--r');%horizontal line
hold on
plot([7*10^5 5*10^9],[0.2 10^-4],'--r');%diagonal line
hold off
grid on

Iniciar sesión para comentar.

Respuesta aceptada

G A
G A el 23 de Mayo de 2021
Editada: G A el 23 de Mayo de 2021
myData = [X,Y];
y1 = 3 - X;
y2 = 2/3*X + 4/3;
Y1 = Y(Y < y2 & Y > y1);
X1 = X(Y < y2 & Y > y1); % or X1 = X(Y == Y1)
myData1 = [X1,Y1];
  4 comentarios
G A
G A el 26 de Mayo de 2021
load('H_usarea_and_slope.mat',"usarea","slope")
scatter(usarea,slope);
set(gca,'xscale','log','yscale','log');
xlabel('Upstream Drainage Area (sq km)');
ylabel('Slope (m/m)');
hold on
xline(7*10^5,'Color','r','LineStyle','--');%vertical line
hold on
plot([1.1*10^6 10^10],[0.15 0.15],'--r');%horizontal line
hold on
plot([7*10^5 5*10^9],[0.2 10^-4],'--r');%diagonal line
grid on
X=usarea;
Y=slope;
Y1=ones(size(X))*0.15; % horizontal line
B=1e7; % vertical line, I shifted it to the right for demonstration purpose
% defining diagonal line as log(y)=a*log(x)+b
x1=log(7e5);
x2=log(5e9);
y1=log(0.2);
y2=log(1e-4);
a=(y2-y1)/(x2-x1);
b=y1-a*x1;
Y2=exp(a*log(X)+b); % diagonal line
Y3 = Y(Y < Y1 & Y > Y2 & X > B); % Y-data between lines
X3 = X(Y < Y1 & Y > Y2 & X> B); % X-array
plot(X3,Y3,'.r');
plot(X,Y1,'--b');
plot(X,Y2,'--g');
xline(B,'--m');
hold off
Niraj Bal Tamang
Niraj Bal Tamang el 26 de Mayo de 2021
Thank you so much.It's working now.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by