# DiagonalMatrix

DiagonalMatrix[list]

gives a matrix with the elements of list on the leading diagonal, and 0 elsewhere.

DiagonalMatrix[list,k]

gives a matrix with the elements of list on the k diagonal.

DiagonalMatrix[list,k,n]

pads with 0s to create an n×n matrix.

# Details • For positive k, DiagonalMatrix[list,k] puts the elements k positions above the main diagonal. DiagonalMatrix[list,-k] puts the elements k positions below.
• DiagonalMatrix[list,k] fills the k diagonal of a square matrix with the elements from list. Different values of k lead to different matrix dimensions.
• DiagonalMatrix[list,k,n] always creates an n×n matrix, even if this requires dropping elements of list. »
• DiagonalMatrix[list,k,{m,n}] creates an m×n matrix.
• DiagonalMatrix[SparseArray[],] gives a SparseArray object.

# Examples

open allclose all

## Basic Examples(1)

Construct a diagonal matrix:

A superdiagonal matrix:

A subdiagonal matrix:

## Scope(4)

The elements in DiagonalMatrix are chosen to match the elements of the vector:

Exact number entries:

Machine-number entries:

Arbitrary-precision number entries:

When the vector is a SparseArray object, DiagonalMatrix will give a SparseArray object:

Pad with zeros to make a larger square matrix:

Make a square matrix with the specified dimension:

Rectangular diagonal matrices:

## Applications(5)

Express a matrix as the sum of its diagonal and off-diagonal parts:

Verify the similarity of a matrix to the diagonal matrix of its eigenvalues:

Define a Jordan matrix:

Construct a 5×5 tridiagonal matrix:

This can also be done using Band:

Extract the diagonal from a diagonal rectangular matrix:

Reconstruct the original matrix from the diagonal:

## Properties & Relations(8)

IdentityMatrix is a special case of DiagonalMatrix:

DiagonalMatrix creates matrices that are DiagonalMatrixQ:

Several simple properties hold for diagonal matrices:

Inverse, MatrixExp, and MatrixPower commute with DiagonalMatrix:

Det and Tr have commuting relations:

Diagonal of DiagonalMatrix gives the original vector:

This is true even if the vector is a SparseArray object:

Matrices with only subdiagonals or superdiagonals are always nilpotent:

The size of the matrix generated by DiagonalMatrix[list,k] equals Length[list]+Abs[k]:

Band can be used to construct diagonals equivalent to DiagonalMatrix[list,k]:

They will be SameQ if the vector is a SparseArray:

Introduced in 1988
(1.0)
|
Updated in 2007
(6.0)
2008
(7.0)