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 件のコメント

dpb
dpb 2016 年 11 月 6 日
There's a runs-finding tool at File Exchange...

サインインしてコメントする。

 採用された回答

KSSV
KSSV 2016 年 11 月 7 日

0 投票

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]

その他の回答 (0 件)

カテゴリ

質問済み:

2016 年 11 月 6 日

回答済み:

2016 年 11 月 7 日

Community Treasure Hunt

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

Start Hunting!

Translated by