From 1fd0c8fd6f353ab98f0d261dc1278b8c827e860d Mon Sep 17 00:00:00 2001
From: marwan <>
Date: Thu, 14 Apr 2016 15:15:20 +0000
Subject: [PATCH] adding Hirata's reconstruction method to recons.m

---
 crp_man.pdf | Bin 591738 -> 592269 bytes
 mi.m        |  10 +-
 recons.m    | 309 ++++++++++++++++++++++++++++++++++++----------------
 3 files changed, 221 insertions(+), 98 deletions(-)

diff --git a/crp_man.pdf b/crp_man.pdf
index 292d73241ea4d5703dac4b58c45f68fca5181673..5435c769a3c92f778a19e7887b5ba0322aa7951f 100755
GIT binary patch
delta 21558
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

delta 21036
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

diff --git a/mi.m b/mi.m
index b887364..52ab061 100644
--- a/mi.m
+++ b/mi.m
@@ -7,13 +7,13 @@ function varargout=mi(varargin)
 %    between all pairs of X1,X2,...,Xn using 10 bins. The result I
 %    is a N x N matrix.
 %
-%    I=MI(X1,X2,...,Xn,N), where N is a scalar, determines the number
-%    of bins N.
-%
 %    I=MI(X1,X2,...,Xn,L) or I=MI(X1,X2,...,Xn,N,L), where L is a 
 %    scalar, computes mutual informations for shifting of the 
 %    components of each pair of X1,X2,...,Xn until a maximal lag L. 
 %
+%    I=MI(X1,X2,...,Xn,N,L), where N is a scalar determining the number
+%    of bins N.
+%
 %    [I S]=MI(...) computes the mutual information and the 
 %    standard error (only for one- and two-dimensional data).
 %
@@ -60,6 +60,10 @@ function varargout=mi(varargin)
 % $Revision$
 %
 % $Log$
+% 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).
+%
 % Revision 3.17  2016/02/05 17:16:37  marwan
 % fix compatibility issues (R2014b)
 %
diff --git a/recons.m b/recons.m
index a4d387d..bb9f367 100644
--- a/recons.m
+++ b/recons.m
@@ -3,12 +3,20 @@ function varargout=recons(varargin)
 %    Y = RECONS(X) reconstructs a time series Y from the 
 %    recurrence plot in the matrix X.
 %
-%    Y = RECONS(X,NAME) reconstructs the time series using
+%    Y = RECONS(X,...,METHOD) specifies the reconstruction method
+%    where string METHOD can be either 'thiel' or 'hirata', using
+%    the method by Marco Thiel (defeault) or Yoshito Hirata.
+%
+%    Y = RECONS(X,...,NAME) reconstructs the time series using
 %    the named cumulative distribution function, which can
-%    be 'norm' or 'Normal' (defeault), 'unif' or 'Uniform'.
+%    be 'norm' or 'Normal' (defeault), 'unif' or 'Uniform'. This
+%    is only necessary for the method by Thiel. The reconstruction
+%    from the Hirata will not be scaled.
 %
-%    Y = RECONS(X,P) reconstructs the time series using
-%    the cumulative distribution function given by vector P.
+%    Y = RECONS(X,P,...) reconstructs the time series using the
+%    cumulative distribution function given by vector P (should be
+%    2nd argument). This is only necessary for the method by Thiel. 
+%    The reconstruction from the Hirata will not be scaled.
 %
 %    See also CRP, CRP2, JRP, TWINSURR.
 %
@@ -16,6 +24,10 @@ function varargout=recons(varargin)
 %    Thiel, M., Romano, M. C., Kurths, J.: 
 %    How much information is contained in a recurrence plot?, 
 %    Phys. Lett. A, 330, 2004.
+%    Hirata, Y., Horai, S., Aihara, K.: 
+%    Reproduction of distance matrices from recurrence plots 
+%    and its applications, 
+%    Eur. Phys. J. ST, 164, 2008.
 
 % Copyright (c) 2008-
 % Norbert Marwan, Potsdam Institute for Climate Impact Research, Germany
@@ -29,6 +41,10 @@ function varargout=recons(varargin)
 % $Revision$
 %
 % $Log$
+% Revision 5.4  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.3  2009/03/24 08:34:10  marwan
 % copyright address changed
 %
@@ -50,7 +66,7 @@ function varargout=recons(varargin)
 
 
 errcode = 0; %xout = [];
-narginchk(1,2)
+narginchk(1,3)
 nargoutchk(0,1)
 
 if isnumeric(varargin{1})==1 		% read RP
@@ -65,119 +81,172 @@ N = size(X); maxN = prod(N)+1;
 if N(1) ~= N(2)
     error('Input must be square matrix.')
 end
+N = N(1);
 
 try
+         
 % final distribution        
 errcode = 1;
-i=(-5:10/(N(1)-1):5)';
-fs=cumsum(10*(1/(sqrt(2*pi))).*exp(-(i).^2./2));
-P=interp1(fs,i,[1:length(fs)],'nearest')';
+i = (-5:10/(N-1):5)';
+fs = cumsum(10*(1/(sqrt(2*pi))).*exp(-(i).^2./2));
+P = interp1(fs,i,[1:length(fs)],'nearest')';
+
+% check for input arguments of type char
+method = 1; % default reconstruction method by Thiel
+i_char = find(cellfun('isclass',varargin,'char'));
+for i = i_char
+    if strcmpi(varargin{i}(1:3), 'thi')
+         method = 1;
+         disp('Use reconstruction by Thiel.')
+    end
+    if strcmpi(varargin{i}(1:3), 'hir')
+         method = 2;
+         disp('Use reconstruction by Hirata')
+    end
+    if strcmpi(varargin{i}(1:3), 'uni')
+         P = (0:1/(N-1):1)';
+         disp('Use uniform distribution.')
+    end
+end
 
 if nargin > 1 & isnumeric(varargin{2})==1
     P = varargin{2};
-elseif nargin > 1 & ischar(varargin{2})==1
-    if strcmpi(varargin{2}(1:3), 'uni')
-        P = (0:1/(N(1)-1):1)';
-        disp('uni')
-    end
 end
 P(isnan(P)) = []; % remove NaN from distribution
 
+h_waitbar = waitbar(0,'Reconstruct trajectory'); drawnow
 
-h_waitbar = waitbar(0,'Remove double columns'); drawnow
+% number of non-neighbours
 
-% remove double rows
-errcode = 2;
-[X2 uniI J]=unique(X,'rows');
-uniI = sort(uniI);
+if method == 2;
+%%%%% Method by Hirata
+    % calculate weights
+    waitbar(0, h_waitbar, 'Calculate weights'); drawnow
+    W = 10000*ones(N,N);
+    errcode = 3;
+    for i = 1:N, waitbar(i/N)
+       neighb = find(X(i,:)); % neighbours of i
+       % number of intersections
+       Ninter = sum(X(neighb,:).*repmat(X(i,:),length(neighb),1),2); 
+       % number of union
+       Nunion = sum((X(neighb,:)+repmat(X(i,:),length(neighb),1))>0,2); 
+       W(i, neighb) = (1 - Ninter./Nunion)';
+    end
 
-% this are the removed rows
-rem = setdiff(1:length(X2),uniI); 
-%X3(rem,:) = X(rem,:);
+    % shortest path
+    dists = zeros(N,N);
+    waitbar(0, h_waitbar, 'Calculate shortest paths'); drawnow
+    for i = 1:N, waitbar(i/N)
+        sds = dijkstra(W,i);
+        dists(i,:) = sds;
+    end
 
-% this are the corresponding columns
-for i = 1:length(rem), waitbar(i/length(rem))
-%    [dummy, dblI(i), a2] = intersect(X, X(rem(i),:), 'rows');
-    X2 = X;
-    X2(rem,:) = -1;
-    dblI(i) = find(all((X2 == repmat(X(rem(i),:), size(X2,2), 1))'));
-end
 
-% number of non-neighbours
-errcode = 3;
-
-waitbar(0, h_waitbar, 'Search neighbours'); drawnow
-NN = maxN*ones(N);
-%N = zeros(size(X1));
-for i = 1:size(X,1), waitbar(i/size(X,1))
-    if ~ismember(i,rem)
-        % indices of RPs at i
-        I = find(X(i,:));
-        I(ismember(I,rem)) = [];
-
-        % number of non-neighbours
-        n = sum((X(I,:) - repmat(X(i,:),length(I),1)) == 1,2);
-        NN(i,I) = n';
+    r = cmdscale(dists); 
+    xneu = r(:,1);
+
+
+else
+
+%%%%% Method by Thiel
+
+    % remove double rows
+    errcode = 2;
+    [X2 uniI J]=unique(X,'rows');
+    uniI = sort(uniI);
+
+    % this are the removed rows
+    rem = setdiff(1:length(X2),uniI); 
+    %X3(rem,:) = X(rem,:);
+
+    % this are the corresponding columns
+    for i = 1:length(rem), waitbar(i/length(rem))
+    %    [dummy, dblI(i), a2] = intersect(X, X(rem(i),:), 'rows');
+        X2 = X;
+        X2(rem,:) = -1;
+        dblI(i) = find(all((X2 == repmat(X(rem(i),:), size(X2,2), 1))'));
     end
-    
-end
-errcode = 4;
-
-% remove entries on the main diagonal in N
-i(1:size(NN,1)) = 1; NN(find(diag(i))) = maxN;
-
-% determine the both indices where N == 0 for all i
-iNaN = NN == maxN; i = find(iNaN); NN2 = NN; NN2(i) = zeros(size(i)); % remove NaNs
-n = sum(NN2,1);
-borderI=find(n==0);
-borderI(ismember(borderI,rem)) = [];
-
-k = borderI(1);
-r = k; % start point in the rank order vector
-
-errcode = 5;
-waitbar(0, h_waitbar, 'Reconstructing time series'); drawnow
-while min(NN(:)) < maxN
-    % look for the minimal N(k,:)
-    waitbar(length(r)/N(1))
-    [dummy kneu] = min(NN(k,:));
-    if ~isempty(dummy) kneu = find(NN(k,:) == dummy); else break, end
-    if length(kneu) > 1 % if a set of minimal N exist
-        [dummy kneu_index] = min(NN(kneu,k));
-        kneu=kneu(kneu_index);
+
+    % number of non-neighbours
+    errcode = 3;
+
+    waitbar(0, h_waitbar, 'Search neighbours'); drawnow
+    NN = maxN*ones(N);
+    %N = zeros(size(X1));
+    for i = 1:size(X,1), waitbar(i/size(X,1))
+        if ~ismember(i,rem)
+            % indices of RPs at i
+            I = find(X(i,:));
+            I(ismember(I,rem)) = [];
+
+            % number of non-neighbours
+            n = sum((X(I,:) - repmat(X(i,:),length(I),1)) == 1,2);
+            NN(i,I) = n';
+        end
+
     end
-    NN(:,k) = maxN;
-    kold = k;
-    k=kneu;
-    r = [r; k]; % add the new found index to the rank order vector
-    if length(r) > N(1) + 1
-        delete(h_waitbar)
-        disp(['Critical abort. Could not find enough corresponding neigbours.',10,'Perhaps the recurrence threshold is too small.'])
-        if nargout
-            varargout{1} = NaN;
+    errcode = 4;
+
+    % remove entries on the main diagonal in N
+    i(1:size(NN,1)) = 1; NN(find(diag(i))) = maxN;
+
+    % determine the both indices where N == 0 for all i
+    iNaN = NN == maxN; i = find(iNaN); NN2 = NN; NN2(i) = zeros(size(i)); % remove NaNs
+    n = sum(NN2,1);
+    borderI=find(n==0);
+    borderI(ismember(borderI,rem)) = [];
+
+    k = borderI(1);
+    r = k; % start point in the rank order vector
+
+    errcode = 5;
+    waitbar(0, h_waitbar, 'Reconstructing time series'); drawnow
+    while min(NN(:)) < maxN
+        % look for the minimal N(k,:)
+        waitbar(length(r)/N(1))
+        [dummy kneu] = min(NN(k,:));
+        if ~isempty(dummy) kneu = find(NN(k,:) == dummy); else break, end
+        if length(kneu) > 1 % if a set of minimal N exist
+            [dummy kneu_index] = min(NN(kneu,k));
+            kneu=kneu(kneu_index);
+        end
+        NN(:,k) = maxN;
+        kold = k;
+        k=kneu;
+        r = [r; k]; % add the new found index to the rank order vector
+        if length(r) > N(1) + 1
+            delete(h_waitbar)
+            disp(['Critical abort. Could not find enough corresponding neigbours.',10,'Perhaps the recurrence threshold is too small.'])
+            if nargout
+                varargout{1} = NaN;
+            end
+            return
         end
-        return
+
     end
-    
-end
 
-errcode = 6;
-% adjust length of the distribution
-P = interp1((1:length(P))/length(P), P, (1:length(r))/length(r),'cubic');
 
-% assign the distribution to the rank order series
-waitbar(0, h_waitbar, 'Assigning distribution'); drawnow
-clear xneu
-for i = 1:length(r);
-    xneu(r(i)) = P(i);
-    waitbar(i/length(r))
-end
 
-errcode = 7;
 
-% add the removed (doubled) elements
-for i =1:length(rem)
-    xneu(rem(i)) = xneu(dblI(i));
+    errcode = 6;
+    % adjust length of the distribution
+    P = interp1((1:length(P))/length(P), P, (1:length(r))/length(r),'cubic');
+
+    % assign the distribution to the rank order series
+    waitbar(0, h_waitbar, 'Assigning distribution'); drawnow
+    clear xneu
+    for i = 1:length(r);
+        xneu(r(i)) = P(i);
+        waitbar(i/length(r))
+    end
+
+    errcode = 7;
+
+    % add the removed (doubled) elements
+    for i =1:length(rem)
+        xneu(rem(i)) = xneu(dblI(i));
+    end
+
 end
 delete(h_waitbar)
 
@@ -248,3 +317,53 @@ catch
 end
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+function sds = dijkstra(dm, s)
+% DIJSKSTRA    Shortest path for weighted graph.
+%    SDS = DIJKSTRA(DM, S) calculates the shortest paths
+%    from vertex S to all other vertices of the graph DM.
+
+%DMAX = length(dm) + 1;
+DMAX = 100001;
+
+n = size(dm,1);
+visited = zeros(1,n);
+
+% allocate 1 at the starting node and DMAX for the rest.
+
+visited = zeros(n,1);
+sds = DMAX * ones(n,1);
+sds(s) = 0;
+
+c = n-1;
+
+while(c > 0)
+  % find the shortest path among not-visited nodes.
+  j = 1;
+  while (visited(j) == 1)
+    j = j+1;
+  end
+  dmin = sds(j);
+  k = j;
+  for i=j:n
+    if(visited(i) == 0)
+      if(dmin > sds(i))
+	    dmin = sds(i);
+	    k = i;
+	  end
+    end
+  end
+
+  visited(k) = 1;
+  c = c - 1;
+%    [c k]
+
+  % find nodes connected to k and increment
+  for i=1:n
+    if((visited(i) == 0)&(dm(k,i) >= 0))
+      if (sds(i) > sds(k) + dm(k,i))
+	    sds(i) = sds(k) + dm(k,i);
+	  end
+    end
+  end
+end
+
-- 
GitLab