counting the number of times a number appears next to the same one in a row?
2 views (last 30 days)
Show older comments
Hi everyone,
I am trying to generate a random sequence and for this I have a row vector, which contains the values 1 to 6 in a random order 4 times (so my vector has 24 elements). I need a way to find how many times the same number appears next to the same number - I have a hard time explaining what I mean but here is an example:
1 2 3 4 5 6 -- no same number appears next to the same number so answer should be 0
1 1 2 3 4 5 -- here 1 is repeated once, so answer should be 1
1 1 2 3 4 4 - here 1 and 4 are repeated and so the answer should be 2
3 Comments
Answers (4)
madhan ravi
on 22 Jun 2019
Simpler:
nnz(~diff(vector))
Note: Taking into account that we only deal with integers.
5 Comments
Bruno Luong
on 22 Jun 2019
Why you are saying "Taking into account that we only deal with integers."
KALYAN ACHARJYA
on 22 Jun 2019
Edited: KALYAN ACHARJYA
on 22 Jun 2019
num=[1 2 3 4 5 6]; % Change this one and test
uniq_num=unique(num);
digit_repeat=length(num)-length(uniq_num)
Its works right?
0 Comments
Bruno Luong
on 22 Jun 2019
Edited: Bruno Luong
on 22 Jun 2019
>> A=[1 1 1 2 3 4 4 2]
A =
1 1 1 2 3 4 4 2
>> sum(diff(A)==0 & diff([NaN, A(1:end-1)])~=0)
ans =
2
>>
0 Comments
Kilian Liss
on 22 Jun 2019
Probably not the most ellegant solution, but the following code seems to work:
x1 = [1 1 2 3 4 4];
count = 0;
for i = 1:length(x1) - 1
if(x1(i) == x1(i + 1))
count = count + 1;
end
end
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!