Code covered by the BSD License  

Highlights from
Discriminant Analysis Programme

image thumbnail
from Discriminant Analysis Programme by Bartolomeu Rabacal
Discrimination and Classification of data to and from groups with classical/robust estimation

unitVectors(vecDim, numVectors)
function unitVec = unitVectors(vecDim, numVectors)

% Computes unit norm vectors either from a gaussian distribution for
% dimensions bigger than two or uniformly spaced from the unit circumpherence in 2D

if vecDim > 2 % If in high dimensions we need for faster numerical computation a normal unit grid

    grid = [];
	grid = normrnd(0, 1, 2 * numVectors, vecDim); % Random gaussian grid
	
	unitVec = grid ./ sqrt(repmat(diag(grid * grid'), 1, vecDim)); % Normalized random gaussian grid
    
else % If in 2D we need for a more broadwise vector spread in space unit norm vectors 

    v = [];
	for j = 1:numVectors
        v(j,:) = [(-1)^j * j / numVectors, (-1)^j * sqrt(1 - (j / numVectors)^2)];
        v(j + numVectors,:) = v(j,:) .* [-1, 1];
	end

    unitVec = v;
    
end

Contact us at files@mathworks.com