how to find upper and lower diagonal matrix matlab

2020-02-16 04:44发布

问题:

I tried to use matlab to find the upper and lower diagonal matrix in matlab

here is the idea

if I have matrix 4x4

 1  2  3  4 
 5  6  7  8
 9 10 11 12 
13 14 15 16

the main diagonal is

1 6 11 16

but the second upper diagonal is

2 7 12

and the lower is

5 10 15

so there is triu and tril but to to write it or use any other function in matlab to find this upper and lower diagonal in matrix.

回答1:

just use diag , for example

 diag(A,0)   % main diagonal, also diag(A)
 diag(A,-1)  % lower diagonal
 diag(A,1)   % upper ...


回答2:

You can use simple linear indexing to get any diagonal of a matrix. All you need to know is the linear index of the first element and the number of rows in the matrix:

 >> [m n] = size(A);

Get the main diagonal on the matrix (first element index is 1):

 >> A( 1 : ( m+1 ) : end )

Get the lower diagonal (first index is 2):

 >> A( 2 : ( m+1 ) : end )

Get the upper diagonal (first index is m+1):

>> A( (m+1) : (m+1) : end )