Вот пример того, что я имел в виду в своем комментарии. Идея состоит в том, чтобы отсортировать ваши точки, используя полярные координаты, сгладить координаты независимо и преобразовать обратно в декартовы координаты. Это не будет хорошо работать, если на ваших кривых есть петли!
% Transform in polar coordinates
[theta , rho] = cart2pol(x,y);
% Sort data by angle
data = sortrows([theta , rho]);
theta = data(:,1);
rho = data(:,2);
% Smooth coordinates
theta = smooth(theta);
rho = smooth(rho , 10); % More aggressive smoothing for rho. You might
% have to adapt the type of smoothing to the
% actual data of course.
% Transform back in cartesian coordinates
[X , Y] = pol2cart(theta , rho);
% Plot original and smooth result
plot(x,y,'b.')
hold on;
plot(X,Y , 'r-')