How to count the time interval at which a particular number occurs in matrix

1 view (last 30 days)
suppose I have a matrix let it be 1x20 where I have a strange number 999, which occurs in the following sequence a=[1,2,999,999,3,45,5,999,999,999,999,6,5,8,999,5,67,8,999,7] so i want number of time 999 occurs must be equal to 4 but i am getting the result as a number of time 999 occurs = 8 please help me in this matter.

Answers (2)

Andrei Bobrov
Andrei Bobrov on 26 Jun 2017
Edited: Andrei Bobrov on 26 Jun 2017
out = a(diff([0;a(:)])~=0);
x = 999;
t = a ~= x;
out = a(t | [1,t(1:end-1)]);

Jan on 26 Jun 2017
Perhaps: With FEX: RunLength:
a = [1,2,999,999,3,45,5,999,999,999,999,6,5,8,999,5,67,8,999,7];
[B, N] = RunLength(a);
Result = max(N(B = 999));
Now the length of the longest sequence of 999s is replied.

Community Treasure Hunt

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

Start Hunting!