MATLAB: Summing a column of a cell array

cell arrayssum

hi,
I have a 74×74 cell array and in each cell i have stored a vector it looks like this:
cell array.JPG
i would like to sum all the vectors in colomn 1 to 74 so a new vector is created, and stored in a 1×74 cell array, i haven't succeded so i hope you could help me, thank you!

Best Answer

mat2cell(sum(cell2mat(fm)),1,cellfun(@(V) size(V,2), fm(:,1)))
Assumptions:
  • each cell contains a row vector
  • the cell can be converted to a matrix. (For example would fail for function handles)
  • the elements are a datatype for which sum() is defined
  • the size of each row vector is consistent for the column.
Not Assummed:
  • that the elements are numeric
  • that the length of the row vectors is exactly 3
  • that the length of the row vectors are all the same across the columns. For example if column 2 had row vectors of length 4, then this code would be happy to give you a result in which the second entry had length 4.