function [Y,cumexpl]=pca(X,ic)
%function [Y,cumexpl]=pca(X,ic)
%
% X osservazioni
% ic assume valori 0 oppure 1
% Se ic = 1 le variabili vengono standardizzate
%
% Y      = nuove variabili
% cumexpl= varianza spiegata cumulata

if (ic) Z=zscore(X);else, Z=X;end

[coeff,latent,explained]=pcacov(cov(Z));

cumexpl=cumsum(explained);
fprintf('     Eigs      Varianza cumul\n')
disp([latent,cumsum(explained)])

r = diag(std(Z))\(coeff*diag(sqrt(latent)));
fprintf('\n Correlazione  X (righe) and Y (colonne) \n')
disp(r)

Y=Z*coeff;   % Ogni colonna di Y e' una nuova var. (comp. principale)
fprintf('\n Nuove var.  Y \n')
disp(Y)
n=size(Y,1);
figure(1)
biplot(Y(:,1:2),'varlabels',int2str((1:n)'))
%axis equal
figure(2)
biplot(Y(:,1:3),'varlabels',int2str((1:n)'))
axis equal
