How can I find elements in sequence in an array?

26 views (last 30 days)
I have an array of numbers. I want to find set of numbers for which difference of two consecutive numbers is 1. For example, I have a sequence [2,3,6,8,9,10,12,14,16,17]. How can I extract position of (2,3), (8,9,10), (16,17)? I also want to save the output in a new array.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 23 May 2017
v=[2,3,6,8,9,10,12,14,16,17]
id=[10 diff(v) 10]==1
ii1=strfind(id,[0 1])
ii2=strfind(id,[ 1 0])
  3 Comments
Jan
Jan on 23 May 2017
To avoid a collision with the elements on the margins:
id = [false, diff(v)==1, false];

Sign in to comment.

More Answers (0)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!