From 5bf7edfe2a4fe8cf46476b6fc166f9824acbe39c Mon Sep 17 00:00:00 2001
From: marwan <>
Date: Thu, 14 Apr 2016 16:06:30 +0000
Subject: [PATCH] corrgram: add Spearman's rho and Kendall's tau fax number
 changed

---
 arfit.m    |  8 ++++++--
 corrgram.m | 32 ++++++++++++++++++++++----------
 fnn.m      |  8 ++++++--
 mi.m       |  7 +++++--
 recons.m   |  7 +++++--
 winplot.m  |  8 ++++++--
 6 files changed, 50 insertions(+), 20 deletions(-)

diff --git a/arfit.m b/arfit.m
index 5746fac..5404ed0 100644
--- a/arfit.m
+++ b/arfit.m
@@ -35,6 +35,10 @@ function varargout=arfit(varargin)
 % $Revision$
 %
 % $Log$
+% Revision 2.9  2016/03/03 14:57:40  marwan
+% updated input/output check (because Mathworks is removing downwards compatibility)
+% bug in crqad_big fixed (calculation of xcf).
+%
 % Revision 2.8  2009/03/24 08:30:23  marwan
 % copyright address changed
 %
@@ -763,7 +767,7 @@ if 0
     err=fprintf(fid,'%s\n','description of what you were doing when this problem occurred.');
     err=fprintf(fid,'%s\n','E-mail or FAX this information to us at:');
     err=fprintf(fid,'%s\n','    E-mail:  marwan@pik-potsdam.de');
-    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2640');
+    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2508');
     err=fprintf(fid,'%s\n\n\n','Thank you for your assistance.');
     err=fprintf(fid,'%s\n',repmat('-',50,1));
     err=fprintf(fid,'%s\n',datestr(now,0));
@@ -796,7 +800,7 @@ if 0
     disp('   this problem occurred.'), disp(' ')
     disp('   E-mail or FAX this information to us at:')
     disp('       E-mail:  marwan@pik-potsdam.de')
-    disp('          Fax:  ++49 +331 288 2640'), disp(' ')
+    disp('          Fax:  ++49 +331 288 2508'), disp(' ')
     disp('   Thank you for your assistance.')
     warning('on')
   end
diff --git a/corrgram.m b/corrgram.m
index 1d7d956..e6bebbc 100644
--- a/corrgram.m
+++ b/corrgram.m
@@ -13,6 +13,9 @@ function [c_out, l_out, t_out] = corrgram(varargin)
 %         k = fix((N-NOVERLAP)/(WINDOW-NOVERLAP)) 
 %   columns.
 %
+%   C = CORRGRAM(...,METHOD) using either Pearson correlation ('pearson', default), 
+%   Spearman's rank correlation ('spearman'), or Kendall's Tau ('kendall').
+%
 %   [C,L,T] = CORRGRAM(...) returns a column of lag L and one of time T
 %   at which the correlation coefficients are computed. L has length equal 
 %   to the number of rows of C, T has length k.
@@ -51,7 +54,6 @@ verbose = 1;
 x = varargin{1}; y = varargin{2};
 x = x(:); y = y(:);
 
-
 % check input and inital setting of parameters
 
 nx = length(x); ny = length(y);
@@ -67,25 +69,31 @@ maxlag = floor(nx/10);
 window = floor(nx/10);
 noverlap = 0;
 
-if length(varargin) > 2 & ~isempty(varargin{3})
+if length(varargin) > 2 & ~isempty(varargin{3}) & isnumeric(varargin{3})
     maxlag = varargin{3};
     if maxlag < 0, error('Requires positive integer value for maximum lag.'), end
     if length(maxlag) > 1, error('Requires MAXLAG to be a scalar.'), end
 end
 
-if length(varargin) > 3 & ~isempty(varargin{4})
+if length(varargin) > 3 & ~isempty(varargin{4}) & isnumeric(varargin{4})
     window = varargin{4};
     if window < 0, error('Requires positive integer value for window length.'), end
     if length(window) > 1, error('Requires WINDOW to be a scalar.'), end
 end
 
-if length(varargin) > 4 & ~isempty(varargin{5})
+if length(varargin) > 4 & ~isempty(varargin{5}) & isnumeric(varargin{5})
     noverlap = varargin{5};
     if noverlap < 0, error('Requires positive integer value for NOVERLAP.'), end
     if length(noverlap) > 1, error('Requires NOVERLAP to be a scalar.'), end
     if noverlap >= window, error('Requires NOVERLAP to be strictly less than the window length.'), end
 end
 
+% check for input arguments of type char
+method = 'Pearson';
+i_char = find(cellfun('isclass',varargin,'char'));
+if ~isempty(i_char)
+   method = varargin{i_char}
+end
 
 % prepare time delayed signals
 X = buffer(x,maxlag+1,maxlag)';
@@ -101,21 +109,25 @@ if verbose, h = waitbar(0,'Compute cross correlation'); end
 
 % -MAXLAG:0
 [Yi dummy] = buffer(Y(:,1),window,noverlap,'nodelay'); 
-Yi = normalize(Yi);
+Yi = zscore(Yi);
 for i = 1:size(X,2), if verbose, waitbar(cnt/(2*size(X,2))), end
     [Xi dummy] = buffer(X(:,i),window,noverlap,'nodelay');
-    Xi = normalize(Xi);
-    C(cnt,:) = mean(Xi .* Yi);
+    Xi = zscore(Xi);
+    %C(cnt,:) = mean(Xi .* Yi);
+    C_ = corr(Xi, Yi, 'Type', method);
+    C(cnt,:) = diag(C_)';
     cnt = cnt + 1;
 end
 
 % 0:MAXLAG
 [Xi dummy] = buffer(X(:,end),window,noverlap,'nodelay');
-Xi = normalize(Xi);
+Xi = zscore(Xi);
 for i = 2:size(Y,2), if verbose, waitbar(cnt/(2*size(X,2))), end
     [Yi dummy] = buffer(Y(:,i),window,noverlap,'nodelay');
-    Yi = normalize(Yi);
-    C(cnt,:) = mean(Xi .* Yi);
+    Yi = zscore(Yi);
+    %C(cnt,:) = mean(Xi .* Yi);
+    C_ = corr(Xi, Yi, 'Type', method);
+    C(cnt,:) = diag(C_)';
     cnt = cnt + 1;
 end
 if verbose, delete(h), end
diff --git a/fnn.m b/fnn.m
index 8afac48..fd64450 100644
--- a/fnn.m
+++ b/fnn.m
@@ -55,6 +55,10 @@ function out=fnn(varargin)
 % $Revision$
 %
 % $Log$
+% Revision 5.13  2016/03/03 14:57:40  marwan
+% updated input/output check (because Mathworks is removing downwards compatibility)
+% bug in crqad_big fixed (calculation of xcf).
+%
 % Revision 5.12  2016/02/05 17:16:37  marwan
 % fix compatibility issues (R2014b)
 %
@@ -647,7 +651,7 @@ catch
     err=fprintf(fid,'%s\n','description of what you were doing when this problem occurred.');
     err=fprintf(fid,'%s\n','E-mail or FAX this information to us at:');
     err=fprintf(fid,'%s\n','    E-mail:  marwan@pik-potsdam.de');
-    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2640');
+    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2508');
     err=fprintf(fid,'%s\n\n\n','Thank you for your assistance.');
     err=fprintf(fid,'%s\n',repmat('-',50,1));
     err=fprintf(fid,'%s\n',datestr(now,0));
@@ -697,7 +701,7 @@ catch
     disp('   this problem occurred.'), disp(' ')
     disp('   E-mail or FAX this information to us at:')
     disp('       E-mail:  marwan@pik-potsdam.de')
-    disp('          Fax:  ++49 +331 288 2640'), disp(' ')
+    disp('          Fax:  ++49 +331 288 2508'), disp(' ')
     disp('   Thank you for your assistance.')
     warning('on')
   end
diff --git a/mi.m b/mi.m
index 52ab061..2ff2259 100644
--- a/mi.m
+++ b/mi.m
@@ -60,6 +60,9 @@ function varargout=mi(varargin)
 % $Revision$
 %
 % $Log$
+% Revision 3.19  2016/04/14 15:15:20  marwan
+% adding Hirata's reconstruction method to recons.m
+%
 % Revision 3.18  2016/03/03 14:57:40  marwan
 % updated input/output check (because Mathworks is removing downwards compatibility)
 % bug in crqad_big fixed (calculation of xcf).
@@ -656,7 +659,7 @@ if 0
     fprintf(fid,'%s\n','description of what you were doing when this problem occurred.');
     fprintf(fid,'%s\n','E-mail or FAX this information to us at:');
     fprintf(fid,'%s\n','    E-mail:  marwan@pik-potsdam.de');
-    fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2640');
+    fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2508');
     fprintf(fid,'%s\n\n\n','Thank you for your assistance.');
     fprintf(fid,'%s\n',repmat('-',50,1));
     fprintf(fid,'%s\n',datestr(now,0));
@@ -706,7 +709,7 @@ if 0
     disp('   this problem occurred.'), disp(' ')
     disp('   E-mail or FAX this information to us at:')
     disp('       E-mail:  marwan@pik-potsdam.de')
-    disp('          Fax:  ++49 +331 288 2640'), disp(' ')
+    disp('          Fax:  ++49 +331 288 2508'), disp(' ')
     disp('   Thank you for your assistance.')
     warning('on')
   end
diff --git a/recons.m b/recons.m
index 19012f7..15e2f50 100644
--- a/recons.m
+++ b/recons.m
@@ -41,6 +41,9 @@ function varargout=recons(varargin)
 % $Revision$
 %
 % $Log$
+% Revision 5.6  2016/04/14 15:26:53  marwan
+% in recons.m: add test for empty results vector
+%
 % Revision 5.5  2016/04/14 15:15:20  marwan
 % adding Hirata's reconstruction method to recons.m
 %
@@ -285,7 +288,7 @@ catch
     err=fprintf(fid,'%s\n','description of what you were doing when this problem occurred.');
     err=fprintf(fid,'%s\n','E-mail or FAX this information to us at:');
     err=fprintf(fid,'%s\n','    E-mail:  marwan@pik-potsdam.de');
-    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2640');
+    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2614');
     err=fprintf(fid,'%s\n\n\n','Thank you for your assistance.');
     err=fprintf(fid,'%s\n',repmat('-',50,1));
     err=fprintf(fid,'%s\n',datestr(now,0));
@@ -318,7 +321,7 @@ catch
     disp('   this problem occurred.'), disp(' ')
     disp('   E-mail or FAX this information to us at:')
     disp('       E-mail:  marwan@pik-potsdam.de')
-    disp('          Fax:  ++49 +331 288 2640'), disp(' ')
+    disp('          Fax:  ++49 +331 288 2508'), disp(' ')
     disp('   Thank you for your assistance.')
     warning('on')
   end
diff --git a/winplot.m b/winplot.m
index b99b50e..2e17b88 100644
--- a/winplot.m
+++ b/winplot.m
@@ -36,6 +36,10 @@ function out=winplot(varargin)
 % $Revision$
 %
 % $Log$
+% Revision 2.8  2016/03/03 14:57:40  marwan
+% updated input/output check (because Mathworks is removing downwards compatibility)
+% bug in crqad_big fixed (calculation of xcf).
+%
 % Revision 2.7  2014/09/23 07:11:25  marwan
 % Matlab R2014b incompatibility issues fixed
 %
@@ -511,7 +515,7 @@ catch
     err=fprintf(fid,'%s\n','description of what you were doing when this problem occurred.');
     err=fprintf(fid,'%s\n','E-mail or FAX this information to us at:');
     err=fprintf(fid,'%s\n','    E-mail:  marwan@pik-potsdam.de');
-    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2640');
+    err=fprintf(fid,'%s\n','       Fax:  ++49 +331 288 2508');
     err=fprintf(fid,'%s\n\n\n','Thank you for your assistance.');
     err=fprintf(fid,'%s\n',repmat('-',50,1));
     err=fprintf(fid,'%s\n',datestr(now,0));
@@ -545,7 +549,7 @@ catch
     disp('   this problem occurred.'), disp(' ')
     disp('   E-mail or FAX this information to us at:')
     disp('       E-mail:  marwan@pik-potsdam.de')
-    disp('          Fax:  ++49 +331 288 2640'), disp(' ')
+    disp('          Fax:  ++49 +331 288 2508'), disp(' ')
     disp('   Thank you for your assistance.')
     warning('on')
   end
-- 
GitLab