How do I get the mean of always 4 columns
    4 views (last 30 days)
  
       Show older comments
    
    Antonio Melieni
 on 15 Apr 2019
  
    
    
    
    
    Commented: Antonio Melieni
 on 17 Apr 2019
            Hi,
I have a 527040 x 16 double array
I need the row mean of always 4 clomuns
So I need the row mean of column 1:4 5:8 9:12 13:16
So I want the mean([1:4],2) and mean([5:8],2) 
but i dont want to wirte it down in that way. I need an more automatic way to do it
any ideas?
0 Comments
Accepted Answer
  madhan ravi
      
      
 on 15 Apr 2019
        
      Edited: madhan ravi
      
      
 on 15 Apr 2019
  
      AA=permute(reshape(A.',4,1,[]),[2,1,3]); % where A is size 527040 X 16
AAA=squeeze(mean(AA)); 
% if you want to reshape it as matrix then
% reshape(AAA,size(A,1),[]) %% edit removed transpose
9 Comments
  Matt J
      
      
 on 15 Apr 2019
				Both the permute operation and the transpose operation allocate arrays the same size as A. sepblockfun avoids this.
More Answers (1)
  Matt J
      
      
 on 15 Apr 2019
        
      Edited: Matt J
      
      
 on 15 Apr 2019
  
      One way is using sepblockfun, downloadable from here
Then you would do,
result = sepblockfun(yourArray, [1,4],'mean');
3 Comments
  Catalytic
      
 on 15 Apr 2019
				
      Edited: Catalytic
      
 on 15 Apr 2019
  
			@Antonio,
The only way I can Matt J's one line solution as being "too complicated" is that this is homework. So, you're not allowed to use third-party routines like sepblockfun as is, and it is a tedious matter for you to try to decipher what it is doing and adapt it to your assignment.
See Also
Categories
				Find more on Matrix Indexing 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!