Finding points with same y-value on a graph.

조회 수: 16 (최근 30일)
Arthur Schrock
Arthur Schrock 2020년 2월 23일
편집: Star Strider 2020년 2월 23일
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

답변 (1개)

Star Strider
Star Strider 2020년 2월 23일
편집: Star Strider 2020년 2월 23일
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 —

카테고리

Help CenterFile Exchange에서 Graph and Network Algorithms에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by