## 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

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