ecov.m
来自「this a SVM toolbox,it is very useful for」· M 代码 · 共 63 行
M
63 行
function [V,eigv]=ecov(X)% ECOV returns non-zero eigenvectors of cov(X).% [V,eigv]=ecov(X)%% This function uses one-to-one correspondence between% non-zero eigenvalues and eigenevectors of matrices% (Xc * Xc') and (Xc' * Xc), where Xc is centered X.%% Result of this function is the same as eig(cov(X'))% but computation is different. The ecov is more% efficient if data dimension >> number of data.%% Result eigenvectors and eigenvalues are return % descending order.%% Input:% X [d x l] d-dimensional patterns set of size l.% % Output:% V [d x m] eigenvectors of cov(X).% eigv [1 x m] non-zero eigenvalues.%
% Statistical Pattern Recognition Toolbox, Vojtech Franc, Vaclav Hlavac% (c) Czech Technical University Prague, http://cmp.felk.cvut.cz.% Modifications:% 21-may-2001, V.Franc, created n=size(X,2);d=size(X,1);% centering dataif n > 1, mi=mean(X')'; X=X-repmat(mi,1,n);else mi=zeros(d,1);end% compute matrix KK=X'*X/(n-1);% compute eigenvectors and sort them[U,D]=eig(K);[eigv,inx]=sort(-real(diag(D)));eigv=-eigv;U=U(:,inx);% compute eigenvectors of cov(X)V=[];for i=1:min(d,n), if eigv(i) > 0, V=[V,X*U(:,i)/sqrt(eigv(i))]; endendeigv = eigv(1:min(d,n));V = V/norm(V);return;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?