Grouping Data Into Smaller "Bins"
    6 views (last 30 days)
  
       Show older comments
    
Hi everyone,
I have a matrix G containing a number of data points (say 5000 for the sake of this example). I would like to create a new matrix, K consisting of only 50 elements, so that every element is the average of the corresponding 100 elements in matrix G.
For example the third element of K should be the mean of elements 100 to 150 of G.
Any way to quickly do that?
0 Comments
Accepted Answer
  Jan
      
      
 on 12 Dec 2018
        
      Edited: Jan
      
      
 on 12 Dec 2018
  
      G   = rand(5000, 3);  % "data points" is not clear
N   = 100;
siz = size(G);
GG  = reshape(G, [N, siz(1)/N, siz(2)]);
R   = reshape(sum(GG, 1) / N, siz(1)/N, siz(2));
If the length of the first dimension is not a multiple of N, you might want to crop the input at first.
R = BlockMean(G, N, 1) / N;
0 Comments
More Answers (0)
See Also
Categories
				Find more on Resizing and Reshaping Matrices 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!
