find coordinate(-s) on a plot

18 visualizaciones (últimos 30 días)
ARGY B
ARGY B el 7 de Sept. de 2019
Comentada: darova el 10 de Sept. de 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 comentarios
dpb
dpb el 7 de Sept. de 2019
Look for crossing the threshold -- hint: what happens in sign(diff(y)-threshold) when the crossing is rising or falling?
darova
darova el 7 de Sept. de 2019
I like polyxpoly() function of intersections from fileexchange

Iniciar sesión para comentar.

Respuestas (1)

Nishant Gupta
Nishant Gupta el 10 de Sept. de 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 comentario
darova
darova el 10 de Sept. de 2019
What if there is no y=10 (y=10.1)

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by