Adding columns in a cell

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

"... find average between them"
What do you mean by that?

Sign in to comment.

 Accepted Answer

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

Why do you need a loop? It’s simply:
(B + C) / 2
Adam Danz
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;

Sign in to comment.

More Answers (0)

Asked:

on 10 Jun 2019

Edited:

on 12 Jun 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!