find intersection points of a line and a curve.
29 次查看(过去 30 天)
显示 更早的评论
I am attaching here the plot. I want to get the intersection points of the horizontal red line with the curve. Also, I want to draw the vertical lines from these intersection points. How both of these tasks can be done? In case, question is not clear feel free to comment.
0 个评论
采纳的回答
Adam Danz
2021-2-20
编辑:Adam Danz
2021-2-20
There are several ways to get the x values at each intersection of the y-value. The simplest solution is to use the intersections() function from the file exchange (I show a similar demo in this answer, "method #2").
That function will return the (x,y) coordinates of the intersection points. Use the x values to plot vertical lines using xline().
% x is a vector of x-values at each intersection
arrayfun(@xline,x)
Or, if you're more comfortable with for-loops,
for i = 1:numel(x)
xline(x(i))
end
3 个评论
Adam Danz
2021-2-20
编辑:Adam Danz
2021-2-20
> In your demo of "method #2", X1 and Y1 must be of same size
Correct. In any demo that would be the case. (x,y) coordinates come in pairs so they must have the same number of elements.
> My X1 is a scalar and it is single whereas Y1 is of length 282
Unless I've misunderstood your question, I think you have this reversed. The horizontal line is defined by at least two x values (the end points) and 1 unique y-value which is repeated for each x value.
The horizontal line in your plot might be something like X1=[1, 280]; Y1 =[15, 15];
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!