2017-02-19 54 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有用。

相關問題