This repository has been archived on 2021-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
NC/mp4/Project_4_Maggioni_Claudio/datasets/outlier.m

38 lines
852 B
Mathematica
Raw Permalink Normal View History

2020-11-04 13:59:14 +00:00
function data = outlier(N, r, dist, outliers, noise)
if nargin < 1
N = 600;
end
if nargin < 2
r = 20;
end
if nargin < 3
dist = 30;
end
if nargin < 4
outliers = 0.04;
end
if nargin < 5
noise = 5;
end
N1 = round(N * (.5-outliers));
N2 = N1;
N3 = round(N * outliers);
N4 = N-N1-N2-N3;
phi1 = rand(N1,1) * pi;
r1 = sqrt(rand(N1,1))*r;
P1 = [-dist + r1.*sin(phi1) r1.*cos(phi1) zeros(N1,1)];
phi2 = rand(N2,1) * pi;
r2 = sqrt(rand(N2,1))*r;
P2 = [dist - r2.*sin(phi2) r2.*cos(phi2) 3*ones(N2,1)];
P3 = [rand(N3,1)*noise dist+rand(N3,1)*noise 2*ones(N3,1)];
P4 = [rand(N4,1)*noise -dist+rand(N4,1)*noise ones(N4,1)];
data = [P1/4.5; P2/4.5; P3/4.5; P4/4.5];
end