# CRP Toolbox

## dl

Mean of the diagonal line lengths and their distribution.

### Syntax

``````a=dl(x)
[a b]=dl(x)
[a b]=dl(x,'param1','param2')
``````

### Description

a=dl(x) computes the mean of the length of the diagonal line structures in a recurrence plot using a specific algorithums (see below).

[a b]=dl(x) computes the mean a and the lengths of the found diagonal lines, stored in b. In order to get the histogramme of the line lengths, simply call hist(b,[1 max(b)]).

...=dl(x,method) uses the specified method for considering border lines (lines starting and ending at a border of the RP).

 Methods regarding considering border lines. 'all' - (Default) Considers all individual lengths of border lines. 'censi' - Correction schema for border lines as proposed by Censi et al. 2004, in which the length of the longest border line is used for all border lines (recommended for cyclical signals). 'kelo' - Correction schema for border lines using KEep LOngest diagonal line (KELO), in which only the longest border line (in each triangle) of the RP is considered but all other border lines are discarded. 'semi' - Relaxing the definition of border lines: not only lines starting AND ending at a border of the RP, but also semi border lines, which are lines that start or end at a border of the RP but have the corresponding ending or starting not at the border, are count. Has only effect for 'censi' or 'kelo' method.

### Remark

In Censi et al. 2004, the length of the LOI was considered to be the longest borderline. Here we use a modification by excluding the LOI from the set of borderlines. This usually results in a shorter length of the border lines than in the original Censi approach. But this would allow us to use this correction schema also for non-cyclical signals without strange effects.

### Examples

``````a = sin(linspace(0,5*2*pi,1000));
X = crp(a,2,50,.2,'nonorm','nogui');
[l1 l_dist1] = dl(X,'all'); % considering all border lines
[l2 l_dist2] = dl(X,'censi'); % apply Censi correction for border lines
[l3 l_dist3] = dl(X,'kelo'); % apply KELO correction for border lines
subplot(3,1,1)
hist(l_dist1,200)
title(sprintf('considering all border lines, l=%.1f',l1))
subplot(3,1,2)
hist(l_dist2,200)
title(sprintf('Censi correction, l=%.1f',l2))
subplot(3,1,3)
hist(l_dist3,200)
title(sprintf('KELO correction, l=%.1f',l3))
``````