Documentation of corr2


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


Function Synopsis

r=corr(vect1, data, lag);

Help text


   r=corr(vect1, data, lag);

   r is the correlation between the two input vectors

   lag is the number of points that vect1 should lag
     data.  For instance:

        corr(a(1:10), b(1:10), 1) will produce the same as:
        corr(a(2:10), b(1:9))

   If lag < 0, then data will lag vect1 by abs(lag) 
     number of points.


Cross-Reference Information

This function is called by

Listing of function corr2

function r=corr(vect1, data, lag);

if nargin < 3;
  lag = 0;
end;

[m,n]=size(vect1);
if m == 1;
  vect1 = vect1';
  [m,n] = size(vect1);
end
[l,k]=size(data);
if m ~= l;
  if m == k;
    data = data';
    [l,k] = size(data);
  else
    error('Number of time points must be equal');
  end
end

if lag < 0;
  tem = vect1;
  vect1 = data;
  data = tem;
  clear tem;
  lag = abs(lag);
end

ind1 = (lag+1):l;  ind2 = 1:(l-lag);
v1 = (vect1(ind1,:) - (ones(length(ind1),1)*mean(vect1(ind1,:))));
v2 = (data(ind2,:) - (ones(length(ind2),1)*mean(data(ind2,:))));

if n == 1;
  r = (v1' * v2) ./ ((length(ind1)-1)*std(v1).*std(v2));
elseif n == k;
  for i = 1:k;
    r(i) = (v1(:,i)' * v2(:,i)) ./ ((length(ind1)-1)*std(v1(:,i))*std(v2(:,i)));
  end
else
  error('vect1 must be a column vector, or must be the same size as data');
end