Effacer les filtres
Effacer les filtres

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

2 vues (au cours des 30 derniers jours)
Paul Wolfram
Paul Wolfram le 3 Sep 2017
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!

Réponses (1)

Image Analyst
Image Analyst le 3 Sep 2017
  1 commentaire
Paul Wolfram
Paul Wolfram le 3 Sep 2017
Modifié(e) : Paul Wolfram le 3 Sep 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!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by