How to find x values of specified y point on the graph ?

117 visualizaciones (últimos 30 días)
Zack Trahem
Zack Trahem el 19 de Jul. de 2022
Comentada: Voss el 5 de Feb. de 2025
Let say i have two array x[1,2,3,4,5] and y[6, 7,8,9,10 ] i want to find the x values of the 6.34 on the graph. I want to put marker for that point is there any way to do it?

Respuestas (3)

Voss
Voss el 19 de Jul. de 2022
x = [1,2,3,4,5];
y = [6,7,8,9,10];
y_point = 6.34;
x_point = interp1(y,x,y_point);
plot(x,y);
hold on
plot(x_point,y_point,'r.')
  4 comentarios
erin
erin el 5 de Feb. de 2025
I seem to be having a problem where I input the code but the point isn't actually on the line of the graph
Voss
Voss el 5 de Feb. de 2025
@erin: You may need to interpolate over multiple segments separately:
x = [1,2,3,4,5,6,7,8,9,10];
y = [6,7,8,9,10,9.5,8.5,7.5,6.5,5.5];
y_point = 6.34;
idx = find(diff(sign(y-y_point)));
n = numel(idx);
xi = zeros(1,n);
yi = zeros(1,n);
nx = numel(x);
for ii = 1:n
tmp = max(1,idx(ii)-1):min(nx,idx(ii)+1);
xi(ii) = interp1(y(tmp),x(tmp),y_point);
yi(ii) = y_point;
end
plot(x,y,'o-');
hold on
plot(xi,yi,'r.')

Iniciar sesión para comentar.


Sam Chak
Sam Chak el 19 de Jul. de 2022
Hi Zack,
You can use interp1 technique.

Star Strider
Star Strider el 19 de Jul. de 2022
Editada: Star Strider el 26 de Nov. de 2024
Using the supplied .fig file —
F = openfig('graph1.fig');
Lines = findobj(gca, 'Type','line');
x = Lines.XData;
y = Lines.YData;
yval = 0.0100277; % Choose A Value Within tThe Range Of 'y'
yxi = find(diff(sign(y-yval)));
for k = 1:numel(yxi)
idxrng = max(1,yxi(k)-1) : min(numel(y),yxi(k)+1);
xv(k) = interp1(y(idxrng), x(idxrng),yval);
yv(k) = yval;
end
% figure
% plot(x, y)
hold on
plot(xv, yv, 'rs', 'MarkerSize',10)
hold off
EDIT — (26 Nov 2024 at 12:05)
Ran code here. This was not possible when this post first appeared.
.

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by