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 Surface and Mesh Plots 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!

