Massive matrix, tridiagonal, ones()
Afficher commentaires plus anciens
I need to transform this matrix, taking the three diagonal lines that have numbers and make them their own matrices. My matrix, however, is 124x124. I do not want to write a 1x123 matrix out that has 122 of the same number and 1 zero. Is there a way use ones() for this?
2 commentaires
Adam Danz
le 15 Fév 2021
What 3 diagonal lines?
The description of the data and the description of the goal are not clear.
A demo using a smaller matrix would likely help.
Anastasia Zistatsis
le 15 Fév 2021
Modifié(e) : Adam Danz
le 15 Fév 2021
Réponses (1)
Jan
le 15 Fév 2021
A = [2 13 0 0 0 0;
1 2 13 0 0 0;
0 1 2 13 0 0;
0 0 1 2 13 0;
0 0 0 1 2 13];
d1 = diag(A, 0) % [2 2 2 2 2],'
d2 = diag(A, 1) % [13 13 13 13 13].'
d3 = diag(A, -1) % [1 1 1 1].'
I do not understand, how you want to get "[13 13 13 13 13 0]" (especially the trailing 0), "zeros(1,5)*2" (zeros times anything is still zeros?), and [0 1 1 1 1] (again the leading zero)?
1 commentaire
Anastasia Zistatsis
le 16 Fév 2021
Catégories
En savoir plus sur Operating on Diagonal Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!