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/twospirals.m
Claudio Maggioni (maggicl) 34b290c569 mp4: done 1a-c in MATLAB
2020-11-04 14:59:14 +01:00

34 lines
No EOL
967 B
Matlab
Executable file

function data = twospirals(N, degrees, start, noise)
% Generate "two spirals" dataset with N instances.
% degrees controls the length of the spirals
% start determines how far from the origin the spirals start, in degrees
% noise displaces the instances from the spiral.
% 0 is no noise, at 1 the spirals will start overlapping
if nargin < 1
N = 2000;
end
if nargin < 2
degrees = 570;
end
if nargin < 3
start = 90;
end
if nargin < 5
noise = 0.2;
end
deg2rad = (2*pi)/360;
start = start * deg2rad;
N1 = floor(N/2);
N2 = N-N1;
n = start + sqrt(rand(N1,1)) * degrees * deg2rad;
d1 = [-cos(n).*n + rand(N1,1)*noise sin(n).*n+rand(N1,1)*noise zeros(N1,1)];
n = start + sqrt(rand(N1,1)) * degrees * deg2rad;
d2 = [cos(n).*n+rand(N2,1)*noise -sin(n).*n+rand(N2,1)*noise ones(N2,1)];
data = [d1/2;d2/2];
end