How can I turn a matrix into several submatrices and add up certain submarices?

1 visualización (últimos 30 días)
Hi community,
I am wondering how to turn a large matrix (9800x9800) into 49x49 submatrices (each with 200x200 cells). Following that, I want to do the following operations:
  1. sum up all matrices on the diagonale
  2. sum up all matrices in the lower triangle
  3. sum up all matrices in the upper triangle
I have been succesful with the first item using the following code:
for i = 1 : meta.NCOUNTRIES;
i
Z_all{i} = Z((i - 1) * meta.NSECTORS + 1 : i * meta.NSECTORS, (i - 1) * meta.NSECTORS + 1 : i * meta.NSECTORS);
end
Z_RoW = zeros(meta.NSECTORS);
for i = 1 : meta.NCOUNTRIES;
i
Z_RoW = Z_RoW + Z_all{i};
end
where
  • meta.NCOUNTRIES = 49
  • meta.NSECTORS = 200
  • meta.Zdim = 9800
I think the above code is not ideal, i.e. it could be done w/o having to use a loop. Also, I have troubles with finding and summing up the elements in the lower/upper triangle.
Thank you!

Respuestas (1)

Image Analyst
Image Analyst el 3 de Sept. de 2017
  1 comentario
Paul Wolfram
Paul Wolfram el 3 de Sept. de 2017
Editada: Paul Wolfram el 3 de Sept. de 2017
Hi Image Analyst,
this is nice for splitting up the matrix. I am still unsure though how to add up certain matrices, e.g. only the matrices in the lower or upper triangle (as shown in yellow shades / green shades in the picture below).
Thank you!

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by