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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

KSSV
KSSV am 7 Nov. 2016

0 Stimmen

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]

Weitere Antworten (0)

Gefragt:

am 6 Nov. 2016

Beantwortet:

am 7 Nov. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by