How to find points between two intersecting lines?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Niraj Bal Tamang
le 22 Mai 2021
Commenté : Niraj Bal Tamang
le 26 Mai 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 commentaires
Réponse acceptée
G A
le 23 Mai 2021
Modifié(e) : G A
le 23 Mai 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 commentaires
G A
le 26 Mai 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
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!