Counting the number of runs in a sequence
Afficher commentaires plus anciens
I have a sequence made up a number of 1's and 0's and I want to count how many runs of numbers occur within the sequence. For example taken the matrix
A=[1,1,1,0,0,1,1,1,1,0,0,0,0,1]
The 1st run: 1,1,1 The 2nd run: 0,0 The 3rd run: 1,1,1,1 The 4th run: 0,0,0,0 The 5th run: 1,
Therefore the total number of runs is 5.
Any help would be much appreciated thanks
Réponses (5)
N_runs=nnz(diff(A))+1;
Azzi Abdelmalek
le 8 Juil 2013
numel(strfind(A,[0,1]))+ numel(strfind(A,[1,0]))+1
Jan
le 8 Juil 2013
N_runs = length(RunLength(A));
David Sanchez
le 8 Juil 2013
A=[1,1,1,0,0,1,1,1,1,0,0,0,0,1];
N_runs = 1;
for k=2:length(A)
if A(k)~=A(k-1)
N_runs = N_runs +1;
end
end
1 commentaire
Jan
le 8 Juil 2013
Vectorized:
N_runs = sum(A(2:end) ~= A(1:end-1));
If you have the Image Processing Toolbox,
C=bwconncomp([A,~A]);
N_runs=C.NumObjects;
Catégories
En savoir plus sur MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!