How do I count how many times in a row a value occurs?
9 views (last 30 days)
Show older comments
If I have some list, say:
A = [1 2 4 3 1 1 1 1];
How do I calculate and store *how many times in a row* each number occurs?
For example, for the value 1, I would want an output of [1, 4], since it appears one time, then when it appears again in the list it repeats four times.
Any help would be appreciated.
0 Comments
Answers (2)
Monica Roberts
on 17 May 2022
Probably not the fastest/cleanest but this should work. Assuming that A contains at least one value.
ind = find(A==1);
answer = [];
count = 1;
for i = 1:numel(ind)-1
d = ind(i+1)-ind(i);
if d == 1
count = count+1;
else
answer = [answer,count];
count = 1;
end
end
answer = [answer,count];
0 Comments
Torsten
on 17 May 2022
Edited: Torsten
on 17 May 2022
A = [1 2 4 3 1 1 1 1];
Au = unique(A);
count = arrayfun(@(i)numel(find(A==Au(i))),1:numel(Au))
output = [Au;count].'
Your question is unclear since the 1 appears 5 times in the row. If you want the maximum number of subsequent repetitions of a number or something similar, you should again formulate your question properly.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!