How can you iterate over a vector

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 Comment

There's a runs-finding tool at File Exchange...

Sign in to comment.

 Accepted Answer

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]

More Answers (0)

Asked:

on 6 Nov 2016

Answered:

on 7 Nov 2016

Community Treasure Hunt

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

Start Hunting!