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