find coordinate(-s) on a plot
10 views (last 30 days)
Show older comments
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
on 7 Sep 2019
Look for crossing the threshold -- hint: what happens in sign(diff(y)-threshold) when the crossing is rising or falling?
Answers (1)
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;
See Also
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!