% PCA_example-1--sent close all; clear all; format compact; format short; warning off; %%% zakr = 7; % zakres osi wykresow rozrzutu X = load(' ... sciezka do pliku ... \PCA_example-1.dat','-ascii'); %X = centralize(X); X [m,n] = size(X); [m n] mean(X) cov(X,1) X'*X X'*X/m vx = sort(diag(X'*X),'descend') vx = vx/sum(vx) figure(1); bar(vx); axis([0 length(vx)+1 0 1]) fig_scatter(2,X(:,1),X(:,2),zakr); C = X'*X/m [K,L] = eigs(C,n,'sm') % K*L*inv(K) K'*K K*L*K' [C K*L*K'] Y = X*K; Y vy = sort(diag(L),'descend') % sortowanie nadmiarowe (eigs) vy = vy/sum(vy) figure(11); bar(vy); axis([0 length(vy)+1 0 1]) fig_scatter(12,Y(:,1),Y(:,2),zakr); tilefigs; % figure(1); % hold on % draw_big_arrow2 (0,0,K(1,1),K(2,1),'r',2,0.4) % draw_big_arrow2 (0,0,K(1,2),K(2,2),'b',2,0.4) % hold off % figure(2); % hold on % draw_big_arrow2 (0,0,1,0,'r',2,0.4) % draw_big_arrow2 (0,0,0,1,'b',2,0.4) % hold off figure(2); hold on draw_big_arrow2 (0,0,3*K(1,1),3*K(2,1),'r',2,0.4) draw_big_arrow2 (0,0,3*K(1,2),3*K(2,2),'b',2,0.4) hold off figure(12); hold on draw_big_arrow2 (0,0,3*1,3*0,'r',2,0.4) draw_big_arrow2 (0,0,3*0,3*1,'b',2,0.4) hold off X'*X/m Y'*Y/m L trace(X'*X/m) trace(L)