Finding points with same y-value on a graph.
조회 수: 16 (최근 30일)
이전 댓글 표시
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
답변 (1개)
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 —
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Graph and Network Algorithms에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!