Boolean Vector Length Calculation
1 view (last 30 days)
Show older comments
Hi all,
I have a vector consisting of booleans, either 1 or 0. Such as {0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0}. 1 values by itself cannot be in between of 0s. The same rule is valid also for 0s. I need the length of 1s separately. In other words, I do not want to know the length of all 1s. Instead, what I look for is the length of each 1s accumulated inside the vector independently. How can I find the length of 1s via matlab?
Thank you in advence.
0 Comments
Accepted Answer
Adam Danz
on 16 Apr 2019
Edited: Adam Danz
on 16 Apr 2019
The vector 'oneCounts' is a list of consecutive 1 counts. It's empty if there are no 1s.
tf = [0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1];
df = diff([0, tf, 0]); %if tf is a column: diff([0;tf;0])
oneCounts = find(df == -1) - find(df == 1)
oneCounts =
3 2 3 4
2 Comments
More Answers (0)
See Also
Categories
Find more on PHY Components in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!