DIAG Diagonal Matrix Construction/Extraction

Section: Array Generation and Manipulations

Usage

The diag function is used to either construct a diagonal matrix from a vector, or return the diagonal elements of a matrix as a vector. The general syntax for its use is
  y = diag(x,n)

If x is a matrix, then y returns the n-th diagonal. If n is omitted, it is assumed to be zero. Conversely, if x is a vector, then y is a matrix with x set to the n-th diagonal.

Examples

Here is an example of diag being used to extract a diagonal from a matrix.
--> A = int32(10*rand(4,5))

A = 

 3 5 3 5 8 
 2 6 8 7 5 
 3 2 5 5 3 
 5 4 1 7 0 

--> diag(A)

ans = 

 3 
 6 
 5 
 7 

--> diag(A,1)

ans = 

 5 
 8 
 5 
 0 

--> 
quit

Here is an example of the second form of diag, being used to construct a diagonal matrix.

--> x = int32(10*rand(1,3))

x = 

 6 4 9 

--> diag(x)

ans = 

 6 0 0 
 0 4 0 
 0 0 9 

--> diag(x,-1)

ans = 

 0 0 0 0 
 6 0 0 0 
 0 4 0 0 
 0 0 9 0 

--> 
quit