The sum of stacked matrices
1 回表示 (過去 30 日間)
古いコメントを表示
I have a 3-d matrix and I want to find the sum so that every element in the sum matrix is the sum of all the elements in that corresponding i,j location. I know that sounds confusing probably so for example:
>> A=zeros(3,3,3);
>> A(:,:,1)=[1 1 1; 1 0 1; 0 0 0];
>> A(:,:,2)=[1 1 1; 0 0 1; 0 1 0];
>> A(:,:,3)=[1 0 1; 0 1 0; 0 1 0];
Would give me a sum matrix that would be:
[ 3 2 3
1 1 2
0 2 0 ]
I realize I could reshape the matrices into a vector, sum them, and then reshape them back into the matrix, and that I could use for loops, but both of those seem over complicated and I would be doing this with a pretty large amount of data so speed is ideal :)
Thanks in advance!
-Shaun
0 件のコメント
採用された回答
Roger Stafford
2012 年 12 月 22 日
sum(A,3)
Roger Stafford
2 件のコメント
Roger Stafford
2012 年 12 月 22 日
No, it sums along the third dimension, which is what you asked for. That is what the '3' refers to.
To get the entire sum of a two-dimensional array you need to either use two calls to 'sum' or convert the array to one-dimension and sum that:
sum(sum(A))
or
sum(A(:))
Roger Stafford
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!