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 = 
 2 8 3 2 2 
 6 8 6 8 5 
 8 9 3 9 0 
 8 3 7 8 2 

--> diag(A)

ans = 
 2 
 8 
 3 
 8 

--> diag(A,1)

ans = 
 8 
 6 
 9 
 2 

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

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

x = 
  1  1 10 

--> diag(x)

ans = 
  1  0  0 
  0  1  0 
  0  0 10 

--> diag(x,-1)

ans = 
  0  0  0  0 
  1  0  0  0 
  0  1  0  0 
  0  0 10  0