% clusters.m % function cb = clusters(input,ref,maxIt) % clusters(randn(2,400)/sqrt(12),randn(2,1)/sqrt(12)); % 17.01.2003, Jens Ahrensfeld function [indices, output] = eudist(input,ref) [nDim, nData] = size(input); [nDimr, nClasses] = size(ref); if (nDim ~= nDimr), error('Dimensions must match!'); end; cnt = zeros(nClasses,1); for j=1:nClasses, indices{j} = []; end; for i=1:nData, for j=1:nClasses, d(j) = sqrt(sum((input(:,i)-ref(:,j)).^2)); % Calc distances between references and input end; [value nearestClass] = min(d); cnt(nearestClass) = cnt(nearestClass) + 1; indices{nearestClass} = [ indices{nearestClass} i ]; end; % Separate data for j=1:nClasses, output{j} = input(:,indices{j}); end;