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

584 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 1 minute ago
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.
.

Categories

Find more on Graphics Object Identification 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!