How do I count how many times in a row a value occurs?
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
Monica Roberts
2022년 5월 17일
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
추가 답변 (1개)
Torsten
2022년 5월 17일
편집: Torsten
2022년 5월 17일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!