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

546 views (last 30 days)
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?

Answers (3)

Voss
Voss on 19 Jul 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.')
  2 Comments
Zack Trahem
Zack Trahem on 19 Jul 2022
Thank you for quick response. this look like what i looking for. However, my y vector is not sorted in assending order and unique. I attached figure.

Sign in to comment.


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

Star Strider
Star Strider on 19 Jul 2022
Edited: Star Strider on 26 Nov 2024 at 12:05
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.
.

Community Treasure Hunt

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

Start Hunting!