Finding the numbers of a vector with the same length?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Dear all
Assuming there is a vector consisting only 0 and 1 like:
x=[0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1]
I want to figure out how many times 1 or 1 1 or 1 1 1 or even longer 1 in a row exists are in this vector?
The solution here would be:
nr_1= 3
nr_1_1= 3
nr_1_1_1= 2
nr_1_1_1_1 = 0
....
Is there a easy way to do it?
Thanks for your help
(Matlab 2010a)
0 Commenti
Risposta accettata
C.J. Harris
il 14 Nov 2012
rep=diff(find(diff([-Inf x Inf])));
val=x(cumsum(rep));
out = hist(rep(val == 1), max(rep));
2 Commenti
C.J. Harris
il 15 Nov 2012
You can process the out data if you want to remove the zeros, for example:
[out(find(out ~= 0)); find(out ~= 0)]
This will then show occurrences (top row) and sequence length (bottom row).
Più risposte (2)
Harshit
il 14 Nov 2012
Hi,
You can save zero as it is and whenever 1 appears start a counter and count the number of 1s in succession. It is Run length encoding. When done just count the number of times the numbers appears.
0 Commenti
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!