2017-02-19 55 views
1

我有一个名为chaining1x24单元阵列,其每个单元包含一个119x119矩阵:如何总结单元格相应索引中的值?

enter image description here

我想找到的所有细胞的每个对应元素的总和,并将其存储在一个名为矩阵result。也就是说,result(j,k) th元素应该包含单元阵列chaining中所有矩阵的(j,k)个元素的总和。

我写了这样做的代码是:

for j=1:size(chaining,2) 
    for k=1:size(chaining,2) 
     result(j,k) = sum(chaining{1,:}(j,k)); 
    end 
end 

但是这给了错误,因为显然MATLAB不能出于某种原因(即chaining{1,:}部分)合计电池阵列。

任何人都可以请告诉我如何去做这件事?

+0

在Matlab中使用'j'作为变量名[不推荐](http://stackoverflow.com/q/14790740/1714410)。 – Shai

+1

@Shai哦,解决复杂的数字,明白了。谢谢 :) – Kristada673

回答

3

怎么样

result = sum(cat(3, chaining{:}), 3); 

刚才发生了什么吗?

cat(3, chaining{:}) 

一旦我们有了的3D阵列size 119逐119逐:
首先,我们通过“堆积”在第三维度上的2D细胞元素转换单元阵列成3D阵列24,我们可以沿着第三维度总结,并得到resultsize 119按119:

sum(..., 3); 

欲了解更多信息请参阅catsum帮助页面。


BTW,
如果硬要chaining{1,:}(jj,kk)类型的解决方案(不推荐),你可能会发现subsref command有用。

相关问题