38 lines
No EOL
852 B
Matlab
Executable file
38 lines
No EOL
852 B
Matlab
Executable file
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 |