📄 pcaanalysis.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function pcaAnalysis()
% z.li, 12-16-2003.
% covariance matrix eigen analysis
% function dependency:
% - n/a
% input:
% y - d x n data
% K - desired dimension, K < n
% output:
% A - d x d eig matrix
% lat - eig vals
% mx - mean
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function [A, lat, mx]=pcaAnalysis(y, K)
function [A, lat, mx]=pcaAnalysis(y, K)
dbg='n';
if dbg=='y'
clear;
y = load('fa-icons-w12h16-3d.dat');
K = 6;
end
x = y'; % make it n x d matrix
[n d] = size(x);
mx = mean(x); % row vec
for k=1:n % remove mean
x(k,:) = x(k,:) - mx;
end
[pc, s, lat, ts]=princomp(x);
A = [];
for j=1:K
A(:,j) = pc(:,j);
end
A = A';
noplot = 'n';
if noplot == 'n'
hold on;
subplot(2,2,1); plot(A(1,:)); xlabel('\fontsize{12} 1st basis');
subplot(2,2,2); plot(A(2,:)); xlabel('\fontsize{12} 2nd basis');
subplot(2,2,3); stem(lat, '.'); xlabel('\fontsize{12} eigen values');
subplot(2,2,4); hold on; xlabel('\fontsize{12} distrb in sub space');
for k=1:n
pct = A*y(:,k);
plot(pct(1), pct(2), '.');
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -