find intersection points of a line and a curve.
19 ビュー (過去 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!