如何在MxN
单元格数组中创建值的总和?我用了cellfun('sum',CellArray{i})
其中,i
指的是MxN
的{{1}}索引。但是因为我在一个循环中使用它来计算块的数量,所以它给出了索引之外的错误。
请问正确的方法是什么?
答案 0 :(得分:3)
我不知道我的问题是否完全正确。你只想要一个单元格数组的所有元素的总和?假设它们是双打的,首先需要将单元格数组转换为矩阵,然后才能使用普通的sum
函数。
% example data
xCell = num2cell( magic(10) )
为您提供一个10x10的单元格数组,其中包含1到100的幻数。 以下内容创建了所有单元格内容的列向量并将它们相加:
S = sum([xCell{:}])
S =
5050
结果很好'高斯先生不需要Matlab。
或者,如果您对所有单行或列的总和感兴趣,可以使用:
S = sum(cell2mat(xCell),dimension) % dimension = 1 or 2 (or 3)
关于您在follow-up question中的评论,您实际上有复杂的双打:
使用:
S = sum( real( [xCell{:}] ) )