I have this vector that I'm trying to iterate over and have a running count for specific elements. I thought about doing this with indexing as well like "find(diff([arr; -1]" as another example. How can I do this so I get this output for this sample array:
arr = [0; 0; 0; 1; 1; 1; 0];
tokenizeSignal(arr)
ans =
3 0
3 1
1 0
A new row is made for each new token. It keeps a count of the number of 0s and 1s in the vector.

1 commentaire

dpb
dpb le 6 Nov 2016
There's a runs-finding tool at File Exchange...

Connectez-vous pour commenter.

 Réponse acceptée

KSSV
KSSV le 7 Nov 2016
clc; clear all ;
arr = [0; 0; 0; 1; 1; 1; 0];
idx = [find(diff([-1 ; arr ; -1]) ~= 0)] ;
lengths = diff(idx) ;
ele = arr(idx(1:end-1)) ;
iwant = [lengths ele]

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by