Effacer les filtres
Effacer les filtres

How to get the diagonal and a subdiagonal in the same matrix?

11 vues (au cours des 30 derniers jours)
Jose
Jose le 15 Oct 2014
I'm trying to get matrix that only has the diagonal and the first subdiagonal values only. Say I have a 4x4 matrix
A=[ 1 2 3 4;
5 6 7 8;
9 10 11 12;
13 14 15 16]
I want to get a matrix
B=[1 2 0 0;
0 6 7 0;
0 0 11 12;
0 0 0 16].
I know using
diag(diag(A))
will give me a 4x4 matrix with the diagonal but the part I'm hung up on is getting the subdiagonal in the form of a 4x4 matrix, I used
diag(diag(A,1))
and it gave me a 3x3 matrix of the subdiagonal. To conclude, is there a way of getting a subdiagonal in the original matrix dimensions?

Réponse acceptée

Mohammad Abouali
Mohammad Abouali le 15 Oct 2014
A=[ 1 2 3 4;
5 6 7 8;
9 10 11 12;
13 14 15 16]
B=triu(A)-triu(A,2)
B =
1 2 0 0
0 6 7 0
0 0 11 12
0 0 0 16
  2 commentaires
Jose
Jose le 15 Oct 2014
Thank you, much appreciated!
Mohammad Abouali
Mohammad Abouali le 15 Oct 2014
you are welcome

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays 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