Skip to content

diag

Extract a diagonal, or build a matrix from a diagonal.

X = diag(v)
X = diag(v, k)
v = diag(A)
v = diag(A, k)

Dual-purpose function:

  • When the input is a vector v, returns a square matrix with v on the main diagonal (or on the k-th diagonal — positive k above, negative k below).
  • When the input is a matrix A, returns the column vector of its main-diagonal entries (or its k-th diagonal).
diag([1 2 3]) % 3×3 with 1, 2, 3 on the diagonal
diag(magic(3)) % column vector [8; 5; 2]
diag([1 2 3], 1) % 4×4 with 1, 2, 3 on the +1 superdiagonal
  • blkdiag — Block-diagonal matrix from input matrices.
  • tril — Lower-triangular part of a matrix.
  • triu — Upper-triangular part of a matrix.
  • trace — Sum of diagonal elements.