Post date: May 9, 2012 2:10:34 AM
The trick here is to define color on the HSV space as it is more understandable. Here the saturation s and the shade v are fixed to 1, and the hue h is separated into n parts equally, each part with 360/n. Then the hsv is transformed back to rgb. the code can be found below:
function rgbList = generateColorList(n,option)N = n+1;h = linspace(0,1,N)'; % H componentss = ones(N,1); % S componentsv = ones(N,1); % V componenthsv = [h s v];hsv = hsv(1:end-1,:);rgbList = hsv2rgb(hsv);if nargin > 1    if strcmp(lower(option.order),'shuffle')        augmentedIndex = [1:n; n:-1:1];        augmentedIndex = augmentedIndex(:);        permutedIndex = augmentedIndex(1:n)';        rgbList = rgbList(permutedIndex,:);    end       if option.display == 1        figure; scatter(1:n,1:n,30,rgbList,'s','filled');    endendTo use it, run the command below:
colorList = generateColorList(NClass);