The sum of stacked matrices
2 次查看(过去 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 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!