1 view (last 30 days)

Show older comments

load dataA.mat

%x1=dataA(:,1);

%y1=dataA(:,2);

f1 = fit(xAbove,yAbove,'smoothingspline','SmoothingParam',0.0001);%smoothingspline

%plot(f1,xAbove,yAbove)

plot(f1,'-r')

hold on

load dataB.mat

%x2=dataB(:,1);

%y2=dataB(:,2);

[xx,ind] = sort(xBelow);

yy2 = smooth(xBelow,yBelow,0.5,'rloess');

plot(xx,yy2(ind),'r-')

%f2 = fit(xBelow,yBelow,'smoothingspline','SmoothingParam',1);%smoothingspline

%plot(xBelow,yBelow)

%xBelow(1)=xAbove(1);

%yBelow(end)=yAbove(end);

%hold on

KSSV
on 20 Jan 2021

load dataA ;

load dataB ;

C1 = [xAbove yAbove] ;

C2 = [xBelow yBelow] ;

% MErge them

C = [C1 ;C2] ;

idx = boundary(C(:,1),C(:,2)) ;

C = C(idx,:) ;

plot(C(:,1),C(:,2))

Raghav Gnanasambandam
on 20 Jan 2021

I am not sure whether it is actually needed to combine the two curves. I am assuming you just need to find the closed curve for the whole data. Depending on how you want to fit a closed curve, you can use either boundary() or convhull().

load dataA.mat

load dataB.mat

x = [xAbove;xBelow];

y = [yAbove;yBelow];

k = boundary(x,y);

hold on;

plot(x(k),y(k));

You can also refer this https://www.mathworks.com/matlabcentral/answers/269081-closed-curve-fitting-of-scatter-plot-data

or

load dataA.mat

load dataB.mat

x = [xAbove;xBelow];

y = [yAbove;yBelow];

k = convhull(x,y);

hold on;

plot(x(k),y(k));

Hope this helps.

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

Start Hunting!