Is there a way to get the intersection point between two curves in Matlab?

13 vues (au cours des 30 derniers jours)
Domenico Dicugno
Domenico Dicugno le 18 Juin 2015
Dear All,
from a contour I get returned the point relative to two iso-curves on a x-y plane. Then, I try to get the intersection point between these two curves. If they behave as a function, then I use the interp1 to find this point. However, in general, it happens that the curves are not functions and this solution no longer works. I tried to use spline but I got a similar problem since the error message looks like:
Error using chckxy (line 51)
The data sites should be distinct.
Error in spline (line 53) [x,y,sizey,endslopes] = chckxy(x,y);
Do you have any suggestions on how to solve this problem?
Many thanks in advance.

Réponses (2)

Luffy
Luffy le 18 Juin 2015
If you have the equation to two curves,you can find the point manually: if y1 & y2 are their equations:
idx = find(y1 - y2 < eps, 1); %// Index of coordinate in array
px = x(idx);
py = y1(idx);
plot(px,py,'or','MarkerSize',18);
If not take a look at this: Curve intersections

somya bhatnagar
somya bhatnagar le 25 Déc 2020
if the values intersection point to be found lies in a polynomial then you can use
[xi,yi]=polyxpoly(x1,y1,x2,y2);

Catégories

En savoir plus sur Splines dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by