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