Adding columns in a cell
    7 views (last 30 days)
  
       Show older comments
    
I have a cell which is 100*4100. I need to take first 100 columns as a matrix and the next 100 columns as the 2nd matrix and find average between them. Please help me out.
Thank you
1 Comment
Accepted Answer
  James Browne
      
 on 12 Jun 2019
        Greetings,
I believe I understand what you are looking for so I wrote a script which I think will solve your problem. All you should need to do is put your data object in the variable A, instead of the matrix of all 1s that I used to test out the script while I was writing it.
%Sreate sample data matrix of all ones
A = ones(100,4100);
%Create matrices of 100 columns from sample data
B = A(:,1:100);
C = A(:,101:200);
%Preallocate memory for storing the averaged results
D = zeros(100,100);
for i = 1:100
    for j = 1:100
        D(i,j) = (B(i,j) + C(i,j))/2;
    end
end
2 Comments
  madhan ravi
      
      
 on 12 Jun 2019
				
      Edited: madhan ravi
      
      
 on 12 Jun 2019
  
			Why do you need a loop? It’s simply:
(B + C) / 2
  Adam Danz
    
      
 on 12 Jun 2019
				
      Edited: Adam Danz
    
      
 on 12 Jun 2019
  
			If this is the correct interpretation of the question (which seems likely), you'll need to extract the matrices from the cell array first. 
c = num2cell(rand(100,4100)); %fake data that fits OP's description
D = (cell2mat(c(:,1:100)) + cell2mat(c(:,101:200))) ./2; 
More Answers (0)
See Also
Categories
				Find more on Logical 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!


