pca.m

来自「Duda的《模式分类》第二版的配套的Matlab源代码」· M 代码 · 共 33 行

M
33
字号
function [patterns, targets, UW, m, W] = PCA(patterns, targets, dimension)

%Reshape the data points using the principal component analysis
%Inputs:
%	train_patterns	- Input patterns
%	train_targets	- Input targets
%	dimension		- Number of dimensions for the output data points
%
%Outputs
%	patterns		- New patterns
%	targets			- New targets
%	UW				- Reshape martix
%   m               - Original pattern averages
%   W               - Eigenvector matrix 

[r,c] = size(patterns);

if (r < dimension),
   disp('Required dimension is larger than the data dimension.')
   disp(['Will use dimension ' num2str(r)])
   dimension = r;
end

%Calculate cov matrix and the PCA matrixes
m           = mean(patterns')';
S			= ((patterns - m*ones(1,c)) * (patterns - m*ones(1,c))');
[V, D]	    = eig(S);
W			= V(:,r-dimension+1:r)';
U			= S*W'*inv(W*S*W');

%Calculate new patterns
UW			= U*W;
patterns    = W*patterns;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?