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

34 lines
967 B
Mathematica
Raw Permalink Normal View History

2020-11-04 13:59:14 +00:00
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