function [c r C M b] = kmeansfinal(X,k)
%Groupe sortie matrice M
c=zeros(2,size(X,2));
for i=1:size(X,2)
c(1,i)=min(X(:,i));
c(2,i)=max(X(:,i));
end
r=zeros(k,size(X,2));
for i=1:size(X,2)
for k=1:k
r(k,i)=((c(1,i)-c(2,i)).*rand(1,1)+c(2,i));
end
end
total=0;
I=0;
C=zeros(size(X,1),k);
oldr=zeros(k,size(X,2));
z = size(X,1);
for i=1:z
C=zeros(size(X,1),k);
for i=1:k
for j=1:size(X,2)
b(:,j)=(X(:,j)-r(i,j)).^2;
C(:,i)=(sum(b')').^0.5;
end
end
%Trouver min distances
M=zeros(size(C,1),1);
for i=1:size(C)
[Y, q]=min(C(i,:));
M(i)=q;
end
%Calcul des sommes
total=0;
for i=1:size(C,1)
total = total+ C(i,M(i));
end
I=I+1;
oldr=r;
%fprintf('Calcul des nouveaux points');
%calcul des nouveaux points
for i=1:size(X,2)
for k=1:k
r(k,i)=mean(X((M==k),i));
end
end
if(sum(sum(oldr-r))==0)
fprintf('***************\n');
fprintf('Total erreurs: \n');
fprintf('%f\n',total);
fprintf('***************\n');
fprintf('Nombre iterations: \n');
fprintf('%f\n',I);
break;
end
end
end