function [B,w0,Kw] = FindCovLinMod(Kx,nDim,x0) % [B,w0,Kw] = FindCovLinMod(Kx,nDim,[x0]) % % Find the linear model for a set of vectors % distributed Normally with covariance matrix K. % % The second two return values are only computed % if x0 is passed. % % 8/22/94 dhb Wrote it. % Compute the SVD of the covariance matrix [U,D,V] = svd(Kx); if (MatMax(U-V) > 1e-10) error('Theory says U should equal V in svd of a covariance matrix'); end % Extract the bases. They are orthonormal. B = U(:,1:nDim); % Compute mean in new basis if raw mean was passed. if (nargin == 3) w0 = B\x0; Kw = D(1:nDim,1:nDim); end