Documentation of eof_dan


Global Index (short | long) | Local contents | Local Index (short | long)


Function Synopsis

[lam, lds, pcs, per, wgt] = eof_dan(data, nkp);

Help text


  [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.


Cross-Reference Information

This function is called by

Listing of function eof_dan

function [lam, lds, pcs, per, wgt] = 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

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;
end;

wgt = std(pcs);
for i = 1:nkp;
  pcs(:,i) = pcs(:,i)./wgt(i);
  lds(:,i) = lds(:,i).*wgt(i);
end