- refactored
This commit is contained in:
Executable
+31
@@ -0,0 +1,31 @@
|
||||
% 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;
|
||||
Reference in New Issue
Block a user