Filter löschen
Filter löschen

find coordinate(-s) on a plot

3 Ansichten (letzte 30 Tage)
ARGY B
ARGY B am 7 Sep. 2019
Kommentiert: darova am 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 Kommentare
dpb
dpb am 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 am 7 Sep. 2019
I like polyxpoly() function of intersections from fileexchange

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Nishant Gupta
Nishant Gupta am 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;
  1 Kommentar
darova
darova am 10 Sep. 2019
What if there is no y=10 (y=10.1)

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by