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


gives a matrix with the elements of list on the k^(th) diagonal.


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



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:

DiagonalMatrix[l] is UpperTriangularMatrixQ and LowerTriangularMatrixQ:

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
Updated in 2007