Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)
[lam, lds, pcs, per] = eof_dan(data, nkp);
[lam, lds, pcs, per] = eof_dan(data); This function assumes that [ntim, npts] = size(data); that is, each column is a time series for a different point.
This function is called by | |
---|---|
function [lam, lds, pcs, per] = eof_dan(data, nkp); if nargin == 1; nkp = 10; end if ndims(data) > 2; resiz = 1; datsiz = size(data); data = reshape(data, datsiz(1), prod(datsiz(2:end))); end [m, n] = size(data); rot = (m < n); if rot; data = data'; %[m, n] = size(data); end %rot = 0; c = data' * data / (m-1); [lds, lam] = eig(c); l = diag(lam); [lam, k] = sort(l'); lds = lds(:,k); lam = fliplr(lam); lds = fliplr(lds); lds = lds(:,1:nkp); per = lam * 100 / sum(lam); pcs = data*lds; if rot; tem = pcs; pcs = lds; lds = tem; for i = 1:nkp; pcs(:,i) = pcs(:,i) * sqrt(lam(i)*(m-1)); lds(:,i) = lds(:,i) / sqrt(lam(i)*(m-1)); end end