The sum of stacked matrices
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuesta aceptada
Roger Stafford
el 22 de Dic. de 2012
sum(A,3)
Roger Stafford
2 comentarios
Roger Stafford
el 22 de Dic. de 2012
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
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!