MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Muhammad
on 2 Mar 2012

Hi I have data sets for two lines. i.e. x1,y1 and x2,y2. So i can plot the lines using these point data sets. I would like to know the point (x,y)where these lines intersect each other. Please note that i have tried both [x,y]=intersections(x1,y1,x2,y2); and [x,y]=curveintersect(x1,y1,x2,y2);

i would appreciate if you can tell me the exact command for this purpose.

Regards

*No products are associated with this question.*

Answer by Andrei Bobrov
on 5 Mar 2012

data = rand(20,3); x1 = sort(data(:,2)); x2 = sort(data(:,3)); y = data(:,1); pp = interp1(x1,y,'linear','pp'); pp2 = interp1(x2,y,'linear','pp'); xx = xx(max(x1(1),x2(1)) <= xx & min(x1(end),x2(end)) >= xx); func = @(x)ppval(pp,x)-ppval(pp2,x); xb = xx([true; diff(func(xx) > 0) ~= 0]); i1 = hankel(1:2,2:numel(xb)); xout = arrayfun(@(z)fzero(func, xb(i1(:,z))), (1:size(i1,2))' )

## 0 Comments