如何求和MxN单元阵列的值?

时间:2013-12-13 11:21:45

标签: matlab indexing cell

如何在MxN单元格数组中创建值的总和?我用了cellfun('sum',CellArray{i}) 其中,i指的是MxN的{​​{1}}索引。但是因为我在一个循环中使用它来计算块的数量,所以它给出了索引之外的错误。

请问正确的方法是什么?

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{:}] ) )