Global Index (short | long) | Local contents | Local Index (short | long)
[out, ccoef] = regress_ceof(temp, pcs, nfrm, num);
[out, temtim] = regress_ceof(dat, pcs, nfrm);
function [out, ccoef] = regress_ceof(temp, pcs, nfrm, num); if nargin < 2; error('There must be at least 2 inputs, ''dat'' and ''pcs'' '); elseif nargin < 3; num = 1; nfrm = 6; elseif nargin < 4; num = 1; end sz_temp = size(temp); ndim = length(sz_temp); [temp, tem] = remove_mean(temp); lag = 0; lg = lag*pi/180; lg2 = 1; j = sqrt(-1); timeseries = sqrt(2)*pcs(:,num)./std(pcs(:,num)); temp = reshape(temp, sz_temp(1), prod(sz_temp(2:ndim))); stdtemp = std(temp); clear temtim treg for i = 1:nfrm wgt = conj(exp(j * ((i-1) * pi/(lg2*nfrm) + lg) )); temtim(:,i) = squeeze(real(wgt .* timeseries)); out(i, :) = temtim(:,i)' * temp ./ sz_temp(1); ccoef(i, :) = out(i, :) ./ stdtemp; end out = reshape(out, [nfrm sz_temp(2:ndim)]); ccoef = reshape(ccoef, [nfrm sz_temp(2:ndim)]);