Date: Jan 26, 2013 8:26 PM
Author: gautamsethi@gmail.com
Subject: Finding end-points for runs

Dear all:
I'm trying to find the end-points for runs of numbers based on a vector. Let

>> Y = [1 3 4 6 7 8]

Y =

1 3 4 6 7 8

I want an output vector Z of size(length(Y),2) where

Z =

0 2
2 5
2 5
5 9
5 9
5 9

Here is the idea behind what I want.

The first element of Y is 1, which is not followed by the next integer; thus, the integers that "surround" the integer 1 are 0 and 2, the first row of Z.

The second element of Y is 3, which is followed by the next integer, 4. However there is a break after 4. Thus, the run of consecutive integers 3 and 4 is "surrounded" by the integers 2 and 5. Therefore, the next two rows of Z, corresponding to the two elements 3 and 4 of Y, are [2 5].

Likewise, the last three elements of Y are consecutive integers, "surrounded" by the integers 5 and 9. Hence the last three rows of Z are [5 9].

Thanks for your help!