Sum repetition in matrices

1 visualización (últimos 30 días)
Moe
Moe el 28 de Abr. de 2014
Comentada: Star Strider el 28 de Abr. de 2014
Hi everyone,
Suppose I have matrix d1, d2, d3, d4, d5:
d1 = [0 0 0 1;0 0 0 0]; % input data
d2 = [0 0 0 0;1 0 0 0]; % input data
d3 = [0 1 0 0;0 0 0 0]; % input data
d4 = [0 0 0 0;1 0 0 0]; % input data
d5 = [0 0 0 0;0 0 1 0]; % input data
and matrix c:
c = [10 12 14 5;1 4 9 15];
Then I want matrix m to be:
m1=c+d1
m2=c+d1+d2 % In other words, in each iteration, the new matrix d should be summed with previous one (same for rest of calculation)
m3=c+d1+d2+d3
m4=c+d1+d2+d3+d4
m5=c+d1+d2+d3+d4+d5
Can anyone please help me?
Note: matrix d is generated with another loop automatically which is dependent to output of matrix m (sum(sum(m)).
  2 comentarios
Image Analyst
Image Analyst el 28 de Abr. de 2014
What's wrong with that way? Why do you need a loop?
Moe
Moe el 28 de Abr. de 2014
@ Image Analyst
Actually, I have over than 10,000 of matrix "d", and each of them will be calculated after calculation each matrix "m" (sort of convergence problem).

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 28 de Abr. de 2014
This works:
d(:,:,1) = [0 0 0 1;0 0 0 0];
d(:,:,2) = [0 0 0 0;1 0 0 0];
d(:,:,3) = [0 1 0 0;0 0 0 0];
d(:,:,4) = [0 0 0 0;1 0 0 0];
d(:,:,5) = [0 0 0 0;0 0 1 0];
c = [10 12 14 5;1 4 9 15];
m(:,:,1) = c;
for k1 = 2:size(d,3)+1
m(:,:,k1) = m(:,:,k1-1) + d(:,:,k1-1);
end
m = m(:,:,2:end) % Result for ‘m’
  2 comentarios
Moe
Moe el 28 de Abr. de 2014
Thanks Star. It was great!
Star Strider
Star Strider el 28 de Abr. de 2014
My pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing 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!

Translated by