📄 whitenv.m
字号:
function [newVectors, whiteningMatrix, dewhiteningMatrix] = whitenv ... (vectors, E, D, s_verbose);%WHITENV - Whitenv vectors.%% [newVectors, whiteningMatrix, dewhiteningMatrix] = ...% whitenv(vectors, E, D, verbose);%% Whitens the data (row vectors) and reduces dimension. Returns% the whitened vectors (row vectors), whitening and dewhitening matrices.%% ARGUMENTS%% vectors Data in row vectors.% E Eigenvector matrix from function 'pcamat'% D Diagonal eigenvalue matrix from function 'pcamat'% verbose Optional. Default is 'on'%% EXAMPLE% [E, D] = pcamat(vectors);% [nv, wm, dwm] = whitenv(vectors, E, D);%%% This function is needed by FASTICA and FASTICAG%% See also PCAMAT% 24.8.1998% Hugo G鋠ert% ========================================================% Default value for 'verbose'if nargin < 4, s_verbose = 'on'; end% Check the optional parameter verbose;switch lower(s_verbose) case 'on' b_verbose = 1; case 'off' b_verbose = 0; otherwise error(sprintf('Illegal value [ %s ] for parameter: ''verbose''\n', s_verbose));end% ========================================================% Calculate the whitening and dewhitening matrices (these handle% dimensionality simultaneously).whiteningMatrix = inv (sqrt (D)) * E';dewhiteningMatrix = E * sqrt (D);% Project to the eigenvectors of the covariance matrix.% Whiten the samples and reduce dimension simultaneously.if b_verbose, fprintf ('Whitening...\n'); endnewVectors = whiteningMatrix * vectors;% ========================================================% Just some security...if ~isreal(newVectors) error ('Whitened vectors have imaginary values.');end% Print some information to userif b_verbose fprintf ('Check: covariance differs from identity by [ %g ].\n', ... max (max (abs (cov (newVectors', 1) - eye (size (newVectors, 1))))));end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -