Remove consecutive values from vector

16 views (last 30 days)
Rose
Rose on 2 Dec 2019
Commented: Rose on 3 Dec 2019
Hey Guys,
I have this vector with increasing values (always positive) up till a certain point, after which it returns to zero again (straight line), and starts increasing again. A so called "saw" pattern. Now I am trying to determine the first indice in the vector which has a value above a certain threshold, but when I do so I get a vector with all of values above threshold.
It would be fixed if I could manage to remove the consecutive indices, and only store the first indice. I tried the following code, but this actually returns the last value of the consecutive numbers. (output is [3,7,12])
Any clue on how to change this to [1,7,10] ?
a = [1;2;3;7;10;11;12]
x = [diff(a')~=1,true];
a(x)
  2 Comments
Image Analyst
Image Analyst on 2 Dec 2019
Huh? How is "a" a sawtooth pattern?
0000 Screenshot.png
Rose
Rose on 3 Dec 2019
This vector I used just as an example to illustrate what I tried to achieve...

Sign in to comment.

Accepted Answer

Ruger28
Ruger28 on 2 Dec 2019
a = [1;2;3;7;10;11;12];
x = diff(a);
y = vertcat(true,x~=1); % shift index down to grab first number
a(y);
a = 1
7
10

More Answers (0)

Categories

Find more on Parallel Computing 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!