Number of peaks per interval
1 view (last 30 days)
Show older comments
how can I count the number of peaks in a given time interval such that if there was no peak detected the count is 0.
This is what I have so far
[time peakcount] =
1 1
2 2
3 1
4 2
6 3
8 2
I would like to have something like this NB: row 5 and 7. thanks
[time peakcount] =
1 1
2 2
3 1
4 2
5 0
6 3
7 0
8 2
0 Comments
Accepted Answer
Star Strider
on 2 Aug 2020
Edited: Star Strider
on 2 Aug 2020
One approach:
t_pc = [ 1 1
2 2
3 1
4 2
6 3
8 2];
t_pc2 = [min(t_pc):max(t_pc); zeros(1,numel(min(t_pc):max(t_pc)))].';
t_pc2(t_pc(:,1),2) = t_pc(:,2)
producing:
t_pc2 =
1 1
2 2
3 1
4 2
5 0
6 3
7 0
8 2
A more efficient version:
t_pc2 = (min(t_pc):max(t_pc)).';
t_pc2(t_pc(:,1),2) = t_pc(:,2)
.
0 Comments
More Answers (1)
Alan Stevens
on 2 Aug 2020
How about:
newtime = 1:max(time);
newpeakcount(time) = peakcount;
2 Comments
Alan Stevens
on 2 Aug 2020
No. It returns the counts with the zeros added, albeit transposed (but that's easily fixed);
newtime =
1 2 3 4 5 6 7 8
newpeakcount =
1 2 1 2 0 3 0 2
See Also
Categories
Find more on Data Type Conversion 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!