MATLAB: Remove outliers from a circumference

geometryoutliers

hi guys.. I have a series of points, those points generates a sort of circumference/ellipse in the 3d space ( intersection between a shpere and a cone).. i want to get rid of the outliers….I've tried using rmoutliers, but nothing.. can you help me?

Best Answer

Here is an idea:
x0 = mean(x); % Choose some center point (maybe approximately)
y0 = mean(y);
[t,r] = cart2pol(x,y); % convert your data to polar system
[~,ix] = sort(t); % sort your data by angle
tol = 0.4; % some tolerance
ix1 = find(diff(r(ix) > tol); % find values where difference of radius is too big
ind = ix(ix1); % indices of outlier points
plot3(x(ind),y(ind),z(ind),'or')
321.png