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

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.

1 Comment

The example matrix has '999' 8 times. So the answer is correct. Exactly what are you trying to achieve ?

Sign in to comment.

Answers (2)

out = a(diff([0;a(:)])~=0);
or
x = 999;
t = a ~= x;
out = a(t | [1,t(1:end-1)]);
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.

Asked:

on 26 Jun 2017

Edited:

on 26 Jun 2017

Community Treasure Hunt

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

Start Hunting!