Puzzler: Count unique nonzero periods in a timeseries without a for loop
1 view (last 30 days)
Show older comments
Will Kinsman
on 19 Jul 2016
Commented: Will Kinsman
on 19 Jul 2016
given: a signal as a time series
return: discrete number of times is is holds a nonzero position
For example:
given: [0,1,0.5,0.7,0,1]
return: 2
given: [0,1,0,0,0,.3,1,0,0,1]
return: 3
given: [0,1]
return: 1
is there a way to do this task in a vector manner as opposed to a for loop that counts nonzero periods as it encounters them and flicks a counter.
0 Comments
Accepted Answer
Azzi Abdelmalek
on 19 Jul 2016
Edited: Azzi Abdelmalek
on 19 Jul 2016
a=[0,1,0,0,0,.3,1,0,0,1]
out=numel(strfind([0 logical(a)],[0 1]))
More Answers (1)
See Also
Categories
Find more on Electromechanical 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!