Programming |

**Operating on Diagonal Matrices**

There are several MATLAB functions that work specifically on diagonal matrices.

Function |
Description |

`blkdiag` |
Construct a block diagonal matrix from input arguments. |

`diag` |
Return a diagonal matrix or the diagonals of a matrix. |

`trace` |
Compute the sum of the elements on the main diagonal. |

`tril` |
Return the lower triangular part of a matrix. |

`triu` |
Return the upper triangular part of a matrix. |

**Constructing a Matrix from a Diagonal Vector**

The `diag`

function has two operations that it can perform. You can use it to generate a diagonal matrix:

A = diag([12:4:32]) A = 12 0 0 0 0 0 0 16 0 0 0 0 0 0 20 0 0 0 0 0 0 24 0 0 0 0 0 0 28 0 0 0 0 0 0 32

You can also use the `diag`

function to scan an existing matrix and return the values found along one of the diagonals:

A = magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 diag(A, 2) % Return contents of second diagonal of A ans = 1 14 22

Sorting Row Vectors | Returning a Triangular Portion of a Matrix |

© 1994-2005 The MathWorks, Inc.