# Adding multiple rows of a cell array

67 views (last 30 days)
hamzah khan on 12 Jul 2020
Commented: Star Strider on 12 Jul 2020
Hello, I have a 5x1 cell array, in which each cell is a 6x64 double.
For each cell, I want to add the rows in this style,
1st, 3rd and 5th rows addded together to make one row
2nd 4th and 6th row added together to make one row.
Can it be done without loop?
I am attaching the file . I don't have any code written yet, because I dont know how to do it..
Does anybody know?

Star Strider on 12 Jul 2020
Try this:
Numerical_FourierForce = D.Numerical_FourierForce;
Out = cellfun(@(x){sum(x(1:2:end,:)); sum(x(2:2:end,:))}, Numerical_FourierForce, 'Uni',0);
Out{1}{1,:} % Check Output
Out{1}(2,:) % Check Output
Out{5}{1,:} % Check Output
Out{5}(2,:) % Check Output
Notice that there are no explicit loops. (There are obviously loops within cellfun.)
##### 2 CommentsShowHide 1 older comment
Star Strider on 12 Jul 2020
As always, my pleasure!

### More Answers (1)

madhan ravi on 12 Jul 2020
Edited: madhan ravi on 12 Jul 2020
Edit: cellfun() is a loop in disguise by the way.
for k = 1:numel(cell_array)
cell_array{k}(end+1,:) = sum(cell_array{k}(1:2:5,:));
cell_array{k}(end+1,:) = sum(cell_array{k}(2:2:6,:));
end
##### 1 CommentShowHide None
hamzah khan on 12 Jul 2020
Thanks :)