find coordinate(-s) on a plot

10 views (last 30 days)
ARGY B
ARGY B on 7 Sep 2019
Commented: darova on 10 Sep 2019
coord.PNG
I have the plot you see above (plotted from data of two vectros X and Y). And I would like to find the coordinates x where y =10. Usually if the y value appears only one time, then I can use the interp1 function.
But what about when this y value belongs to 2 or more x coordinates?
  2 Comments
dpb
dpb on 7 Sep 2019
Look for crossing the threshold -- hint: what happens in sign(diff(y)-threshold) when the crossing is rising or falling?
darova
darova on 7 Sep 2019
I like polyxpoly() function of intersections from fileexchange

Sign in to comment.

Answers (1)

Nishant Gupta
Nishant Gupta on 10 Sep 2019
Hi Argy,
You can use logical indexing to find the x-ordinates corresponding to y = 10 as follows:
x = [1 2 3 4 5]; % x vector
y = [15 10 25 10 5]; % y vector
plot(x,y);
hold on;
yline(10); % plot horizontal line at y = 10
idx = find(y==10);
for i = 1:numel(idx)
xline(x(idx(i))); % to get vertical line at all x-ordinates corresponding to y = 10
end
hold off;

Community Treasure Hunt

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

Start Hunting!