2016-08-13 4 views
1

私はセル配列Cを持ち、各要素はN1xN2xN3行列です。 は、私は、これらの細胞内のすべての特派要素を総括し、その要素セル配列の各要素の対応する要素を合計する方法

res=zeros(size(C{1})); 
for i=1:n_cell 
    res=res.+C{i} 
end 

に等しく、それを行うには、より効率的な方法がありN1xN2xN3行列の解像度をもたらす必要がある(forループなしでは?)? ありがとう!

答えて

2

4次元に沿って行列を連結し、それに沿って合計することができます。あなたは単にplusを使用することができオクターブを使用している場合はここ

res = sum(cat(4, C{:}), 4); 

C

res = sum(cat(ndims(C{1}) + 1, C{:}), ndims(C{1}) + 1); 

の要素の任意の次元のための一般的なソリューションです:

res = plus(C{:}); 

残念ながら、この最後のオプションウォンMATLABのplusは2つの入力引数しか受け付けないため、MATLABで作業しません。

+0

素晴らしい!どうもありがとうございました! –

関連する問題