Finding points with same y-value on a graph.
12 views (last 30 days)
Show older comments
I have a set of numbers for x and y. The graph increses and decreses with a max point. I have a new value for y, which crosses the graph twice and want to know the corresponding x values.
x=2,4,7,9,10,14
y=5,10,15,14,12,3
new y value = 12.5
0 Comments
Answers (1)
Star Strider
on 23 Feb 2020
Edited: Star Strider
on 23 Feb 2020
Try this:
x = [2,4,7,9,10,14];
y = [5,10,15,14,12,3];
new_y_value = 12.5
[~,idx] = max(y);
newx(1) = interp1(y(1:idx), x(1:idx), new_y_value);
newx(2) = interp1(y(idx:end), x(idx:end), new_y_value);
figure
plot(x,y,'-r')
hold on
plot(newx, [1 1]*new_y_value, 'pg', 'MarkerSize',10, 'MArkerFaceColor','g')
hold off
grid
It is necessary to do this for each value of ‘newx’, splitting the vectors at ‘idx’ correspoinding to the maximum ‘y’-value, since interp1 can only work with monotonically-changing vectors for the independent variable (here: ‘y’).
EDIT —
Added plot image —
0 Comments
See Also
Categories
Find more on Graph and Network Algorithms 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!