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.
function [lam, lds, pcs, per] = eof_dan(data, nkp); if nargin == 1; nkp = 10; 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; wgt2 = sqrt(lam*(m-1)); data = data'; lam = lam*(sum(var(data))/sum(lam)); for i = 1:nkp pcs(:,i) = pcs(:,i)*sqrt(lam(i)*(n-1)); lds(:,i) = lds(:,i)./(wgt2(i)); end end