The number of consecutive ocurrances in an array
1 次查看(过去 30 天)
显示 更早的评论
I have an array that is shown as: a=[0,0,1,1,1,0,0,1] and I would like to get the number of consecutive ocurrances in it along with the number itself meaning that I would like the output to be b=[2,0,3,1,2,0,1,1] where 0 occurred two consecutive times, 1 occurred three consecutive times, etc. Please help me and thank you in advance.
3 个评论
John Chilleri
2017-5-1
The b is a description of vector a:
Two 0s, then three 1s, then two 0s, then one 1.
回答(1 个)
Guillaume
2017-5-1
This is trivially achieved with diff and find:
a = [0, 0, 1, 1, 1, 0, 0, 1];
transitions = find(diff(a));
runlengths = diff([0, transitions, numel(a)]);
runvalues = a([transitions, end]);
valuelength = reshape([runlengths; runvalues], 1, [])
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multidimensional Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!