% KMEDIAS
%
% La funcion [C,s]=kmedias(X,k) obtiene un agrupacion de los individuos 
% de la matriz X (n,p) en k conglomerados, segun el algoritmo de k-medias 
%
% Advertencia: Se usa la funcion kmeans de Matlab, que calcula las
% distancias euclideas entre las filas de X.
%
% Devuelve :
%   C : son las coordenadas de los k puntos medios de cada conglomerado
%   s : el valor medio del silhouette-plot
% 
% Salidas graficas: Representacion de los k conglomerados y de los
% centroides y representacion del silouette-plot
%
function [C,s]=kmedias(X,k)
[IDX,C0] = kmeans(X,k);
C=C0(:,1:2);
s=silhouette(X,IDX);
s=mean(s);
hold off
subplot(1,2,1)
   gscatter(X(:,1),X(:,2),IDX)
   hold on
   plot(C(:,1),C(:,2),'+k','MarkerSize',6,'LineWidth',2)
   title(['Algoritmo k-medias con ' num2str(k) ' grupos'],'FontSize',10)
hold off
subplot(1,2,2)
   silhouette(X,IDX)
   title(['Silhouette-plot para ' num2str(k) ' grupos'],'FontSize',10)