Products
  • Wolfram|One

    The definitive Wolfram Language and notebook experience

  • Mathematica

    The original technical computing environment

  • Notebook Assistant + LLM Kit

    All-in-one AI assistance for your Wolfram experience

  • Compute Services
  • System Modeler
  • Finance Platform
  • Wolfram|Alpha Notebook Edition
  • Application Server
  • Enterprise Private Cloud
  • Wolfram Engine
  • Wolfram Player
  • Wolfram Cloud App
  • Wolfram Player App

More mobile apps

Core Technologies of Wolfram Products

  • Wolfram Language
  • Computable Data
  • Wolfram Notebooks
  • AI & Linguistic Understanding

Deployment Options

  • Wolfram Cloud
  • wolframscript
  • Wolfram Engine Community Edition
  • Wolfram LLM API
  • WSTPServer
  • Wolfram|Alpha APIs

From the Community

  • Function Repository
  • Community Paclet Repository
  • Example Repository
  • Neural Net Repository
  • Prompt Repository
  • Wolfram Demonstrations
  • Data Repository
  • Group & Organizational Licensing
  • All Products
Consulting & Solutions

We deliver solutions for the AI era—combining symbolic computation, data-driven insights and deep technical expertise

  • Data & Computational Intelligence
  • Model-Based Design
  • Algorithm Development
  • Wolfram|Alpha for Business
  • Blockchain Technology
  • Education Technology
  • Quantum Computation

Wolfram Consulting

Wolfram Solutions

  • Data Science
  • Artificial Intelligence
  • Biosciences
  • Healthcare Intelligence
  • Sustainable Energy
  • Control Systems
  • Enterprise Wolfram|Alpha
  • Blockchain Labs

More Wolfram Solutions

Wolfram Solutions For Education

  • Research Universities
  • Colleges & Teaching Universities
  • Junior & Community Colleges
  • High Schools
  • Educational Technology
  • Computer-Based Math

More Solutions for Education

  • Contact Us
Learning & Support

Get Started

  • Wolfram Language Introduction
  • Fast Intro for Programmers
  • Fast Intro for Math Students
  • Wolfram Language Documentation

More Learning

  • Highlighted Core Areas
  • Demonstrations
  • YouTube
  • Daily Study Groups
  • Wolfram Schools and Programs
  • Books

Grow Your Skills

  • Wolfram U

    Courses in computing, science, life and more

  • Community

    Learn, solve problems and share ideas.

  • Blog

    News, views and insights from Wolfram

  • Resources for

    Software Developers

Tech Support

  • Contact Us
  • Support FAQs
  • Support FAQs
  • Contact Us
Company
  • About Wolfram
  • Career Center
  • All Sites & Resources
  • Connect & Follow
  • Contact Us

Work with Us

  • Student Ambassador Initiative
  • Wolfram for Startups
  • Student Opportunities
  • Jobs Using Wolfram Language

Educational Programs for Adults

  • Summer School
  • Winter School

Educational Programs for Youth

  • Middle School Camp
  • High School Research Program
  • Computational Adventures

Read

  • Stephen Wolfram's Writings
  • Wolfram Blog
  • Wolfram Tech | Books
  • Wolfram Media
  • Complex Systems

Educational Resources

  • Wolfram MathWorld
  • Wolfram in STEM/STEAM
  • Wolfram Challenges
  • Wolfram Problem Generator

Wolfram Initiatives

  • Wolfram Science
  • Wolfram Foundation
  • History of Mathematics Project

Events

  • Stephen Wolfram Livestreams
  • Online & In-Person Events
  • Contact Us
  • Connect & Follow
Wolfram|Alpha
  • Your Account
  • User Portal
  • Wolfram Cloud
  • Products
    • Wolfram|One
    • Mathematica
    • Notebook Assistant + LLM Kit
    • Compute Services
    • System Modeler
    • Finance Platform
    • Wolfram|Alpha Notebook Edition
    • Application Server
    • Enterprise Private Cloud
    • Wolfram Engine
    • Wolfram Player
    • Wolfram Cloud App
    • Wolfram Player App

    More mobile apps

    • Core Technologies
      • Wolfram Language
      • Computable Data
      • Wolfram Notebooks
      • AI & Linguistic Understanding
    • Deployment Options
      • Wolfram Cloud
      • wolframscript
      • Wolfram Engine Community Edition
      • Wolfram LLM API
      • WSTPServer
      • Wolfram|Alpha APIs
    • From the Community
      • Function Repository
      • Community Paclet Repository
      • Example Repository
      • Neural Net Repository
      • Prompt Repository
      • Wolfram Demonstrations
      • Data Repository
    • Group & Organizational Licensing
    • All Products
  • Consulting & Solutions

    We deliver solutions for the AI era—combining symbolic computation, data-driven insights and deep technical expertise

    WolframConsulting.com

    Wolfram Solutions

    • Data Science
    • Artificial Intelligence
    • Biosciences
    • Healthcare Intelligence
    • Sustainable Energy
    • Control Systems
    • Enterprise Wolfram|Alpha
    • Blockchain Labs

    More Wolfram Solutions

    Wolfram Solutions For Education

    • Research Universities
    • Colleges & Teaching Universities
    • Junior & Community Colleges
    • High Schools
    • Educational Technology
    • Computer-Based Math

    More Solutions for Education

    • Contact Us
  • Learning & Support

    Get Started

    • Wolfram Language Introduction
    • Fast Intro for Programmers
    • Fast Intro for Math Students
    • Wolfram Language Documentation

    Grow Your Skills

    • Wolfram U

      Courses in computing, science, life and more

    • Community

      Learn, solve problems and share ideas.

    • Blog

      News, views and insights from Wolfram

    • Resources for

      Software Developers
    • Tech Support
      • Contact Us
      • Support FAQs
    • More Learning
      • Highlighted Core Areas
      • Demonstrations
      • YouTube
      • Daily Study Groups
      • Wolfram Schools and Programs
      • Books
    • Support FAQs
    • Contact Us
  • Company
    • About Wolfram
    • Career Center
    • All Sites & Resources
    • Connect & Follow
    • Contact Us

    Work with Us

    • Student Ambassador Initiative
    • Wolfram for Startups
    • Student Opportunities
    • Jobs Using Wolfram Language

    Educational Programs for Adults

    • Summer School
    • Winter School

    Educational Programs for Youth

    • Middle School Camp
    • High School Research Program
    • Computational Adventures

    Read

    • Stephen Wolfram's Writings
    • Wolfram Blog
    • Wolfram Tech | Books
    • Wolfram Media
    • Complex Systems
    • Educational Resources
      • Wolfram MathWorld
      • Wolfram in STEM/STEAM
      • Wolfram Challenges
      • Wolfram Problem Generator
    • Wolfram Initiatives
      • Wolfram Science
      • Wolfram Foundation
      • History of Mathematics Project
    • Events
      • Stephen Wolfram Livestreams
      • Online & In-Person Events
    • Contact Us
    • Connect & Follow
  • Wolfram|Alpha
  • Wolfram Cloud
  • Your Account
  • User Portal
Wolfram Language & System Documentation Center
DiagonalMatrix
  • See Also
    • DiagonalMatrixQ
    • IdentityMatrix
    • Diagonal
    • Tr
    • KroneckerDelta
    • Band
    • SparseArray
  • Related Guides
    • Constructing Matrices
    • Structured Arrays
    • Matrices and Linear Algebra
    • Matrix Decompositions
    • Structure Matrices & Convolution Kernels
  • Tech Notes
    • Vectors and Matrices
    • Constructing Matrices
    • See Also
      • DiagonalMatrixQ
      • IdentityMatrix
      • Diagonal
      • Tr
      • KroneckerDelta
      • Band
      • SparseArray
    • Related Guides
      • Constructing Matrices
      • Structured Arrays
      • Matrices and Linear Algebra
      • Matrix Decompositions
      • Structure Matrices & Convolution Kernels
    • Tech Notes
      • Vectors and Matrices
      • Constructing Matrices

DiagonalMatrix[list]

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

DiagonalMatrix[list,k]

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

DiagonalMatrix[list,k,n]

pads with zeros to create an n×n matrix.

Details and Options
Details and Options Details and Options
Examples  
Basic Examples  
Scope  
Options  
TargetStructure  
Applications  
Properties & Relations  
See Also
Tech Notes
Related Guides
History
Cite this Page
BUILT-IN SYMBOL
  • See Also
    • DiagonalMatrixQ
    • IdentityMatrix
    • Diagonal
    • Tr
    • KroneckerDelta
    • Band
    • SparseArray
  • Related Guides
    • Constructing Matrices
    • Structured Arrays
    • Matrices and Linear Algebra
    • Matrix Decompositions
    • Structure Matrices & Convolution Kernels
  • Tech Notes
    • Vectors and Matrices
    • Constructing Matrices
    • See Also
      • DiagonalMatrixQ
      • IdentityMatrix
      • Diagonal
      • Tr
      • KroneckerDelta
      • Band
      • SparseArray
    • Related Guides
      • Constructing Matrices
      • Structured Arrays
      • Matrices and Linear Algebra
      • Matrix Decompositions
      • Structure Matrices & Convolution Kernels
    • Tech Notes
      • Vectors and Matrices
      • Constructing Matrices

DiagonalMatrix

DiagonalMatrix[list]

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

DiagonalMatrix[list,k]

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

DiagonalMatrix[list,k,n]

pads with zeros to create an n×n matrix.

Details and Options

  • A diagonal matrix can be used to scale the rows of a matrix by multiplying from the left, or scale the columns by multiplying from the right.
  • In the diagonal matrix  given by DiagonalMatrix[{d1,…,dn}], the entries are given by D〚i,j〛=d_iTemplateBox[{{i, ,, j}}, KroneckerDeltaSeq]; that is, for the i^(th) leading diagonal entry and 0 otherwise.
  • DiagonalMatrix[list] is a symmetric matrix, and is thus equal to its transpose.
  • For positive k, DiagonalMatrix[{d1,…,ds},k] puts the elements k positions above the leading diagonal, while DiagonalMatrix[{d1,…,ds},-k] puts the elements k positions below the leading diagonal of a matrix of size (TemplateBox[{k}, Abs]+s)x(TemplateBox[{k}, Abs]+s). Different values of k lead to different matrix dimensions.
  • DiagonalMatrix[list] is equivalent to DiagonalMatrix[list,0].
  • DiagonalMatrix[list,k,n] always creates an n×n matrix, even if this requires dropping elements of list. »
  • The determinant of a diagonal matrix is the product of the leading diagonal entries if , and 0 otherwise.
  • DiagonalMatrix[list,k,{m,n}] creates an m×n matrix.
  • DiagonalMatrix[SparseArray[…],…] gives a SparseArray object.
  • DiagonalMatrix[…,TargetStructure->struct] returns the diagonal matrix in the format specified by struct. Possible settings include:
  • Automaticautomatically choose the representation returned
    "Dense"represent the matrix as a dense matrix
    "Sparse"represent the matrix as a sparse array
    "Structured"represent the matrix as a structured array
    "Symmetric"represent the matrix as a symmetric matrix
  • With DiagonalMatrix[…,TargetStructureAutomatic], a dense matrix is returned if the number of matrix entries is less than a preset threshold, and a structured array is returned otherwise.
  • Diagonal matrices, when represented as structured arrays, allow for efficient storage and more efficient operations, including Det, Inverse and LinearSolve.
  • Operations that are accelerated for DiagonalMatrix include:
  • Dettime
    Dottime
    Inversetime
    LinearSolvetime
  • For a structured DiagonalMatrix sa, the following properties "prop" can be accessed as sa["prop"]:
  • "Diagonal"list of entries on the k^(th) diagonal
    "Offset"the offset k
    "Properties"list of supported properties
    "Structure"type of structured array
    "StructuredData"internal data stored by the structured array
    "StructuredAlgorithms"list of functions with special methods for the structured array
    "Summary"summary information, represented as a Dataset
  • Normal[DiagonalMatrix[…]] gives the diagonal matrix as an ordinary matrix.

Examples

open all close all

Basic Examples  (1)

Construct a diagonal matrix:

A superdiagonal matrix:

A subdiagonal matrix:

Scope  (6)

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

Exact number entries:

Machine-number entries:

Arbitrary-precision number entries:

Pad with zeros to make a larger square matrix:

Make a square matrix with the specified dimension:

Rectangular diagonal matrices:

Construct a sparse diagonal matrix using the option setting TargetStructure"Sparse":

The sparse representation saves a significant amount of memory for larger matrices:

Generate a structured diagonal matrix using the option setting TargetStructure"Structured":

The representation and computation are efficient for the structured array:

The normal representation is dramatically bigger and slower:

The inverse needs a large amount of storage:

DiagonalMatrix objects include properties that give information about the array:

"Diagonal" gives the diagonal entries:

"Offset" gives the offset, which is zero, positive or negative if the diagonal elements are respectively on, above or below the main diagonal:

The "Summary" property gives a brief summary of information about the array:

The "StructuredAlgorithms" property lists the functions that have structured algorithms:

Options  (3)

TargetStructure  (3)

Return the diagonal matrix as a dense matrix:

Return the diagonal matrix as a structured array:

Return the diagonal matrix as a sparse array:

With the setting TargetStructureAutomatic, a dense matrix is returned for small dimensions:

For large dimensions, a structured representation is returned:

The dense representation uses a lot of memory for large lists:

The sparse representation typically uses less memory:

The structured representation uses even less memory:

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  (9)

IdentityMatrix is a special case of DiagonalMatrix:

Convert IdentityMatrix to a structured 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:

The permanent of the product of a diagonal matrix and a general matrix is equal to the permanent of the general matrix multiplied by the diagonal elements of the diagonal matrix:

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 with the setting TargetStructure"Sparse":

See Also

DiagonalMatrixQ  IdentityMatrix  Diagonal  Tr  KroneckerDelta  Band  SparseArray

Function Repository: BlockDiagonalMatrix  AntidiagonalMatrix

Tech Notes

    ▪
  • Vectors and Matrices
  • ▪
  • Constructing Matrices

Related Guides

    ▪
  • Constructing Matrices
  • ▪
  • Structured Arrays
  • ▪
  • Matrices and Linear Algebra
  • ▪
  • Matrix Decompositions
  • ▪
  • Structure Matrices & Convolution Kernels

History

Introduced in 1988 (1.0) | Updated in 2007 (6.0) ▪ 2008 (7.0) ▪ 2023 (13.3) ▪ 2024 (14.0)

Wolfram Research (1988), DiagonalMatrix, Wolfram Language function, https://reference.wolfram.com/language/ref/DiagonalMatrix.html (updated 2024).

Text

Wolfram Research (1988), DiagonalMatrix, Wolfram Language function, https://reference.wolfram.com/language/ref/DiagonalMatrix.html (updated 2024).

CMS

Wolfram Language. 1988. "DiagonalMatrix." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/DiagonalMatrix.html.

APA

Wolfram Language. (1988). DiagonalMatrix. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DiagonalMatrix.html

BibTeX

@misc{reference.wolfram_2025_diagonalmatrix, author="Wolfram Research", title="{DiagonalMatrix}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/DiagonalMatrix.html}", note=[Accessed: 01-March-2026]}

BibLaTeX

@online{reference.wolfram_2025_diagonalmatrix, organization={Wolfram Research}, title={DiagonalMatrix}, year={2024}, url={https://reference.wolfram.com/language/ref/DiagonalMatrix.html}, note=[Accessed: 01-March-2026]}

Top
Introduction for Programmers
Introductory Book
Wolfram Function Repository | Wolfram Data Repository | Wolfram Data Drop | Wolfram Language Products
Top
  • Products
  • Wolfram|One
  • Mathematica
  • Notebook Assistant + LLM Kit
  • Compute Services
  • System Modeler

  • Wolfram|Alpha Notebook Edition
  • Wolfram|Alpha Pro
  • Mobile Apps

  • Wolfram Engine
  • Wolfram Player

  • Volume & Site Licensing
  • Server Deployment Options
  • Consulting
  • Wolfram Consulting
  • Repositories
  • Data Repository
  • Function Repository
  • Community Paclet Repository
  • Neural Net Repository
  • Prompt Repository

  • Wolfram Language Example Repository
  • Notebook Archive
  • Wolfram GitHub
  • Learning
  • Wolfram U
  • Wolfram Language Documentation
  • Webinars & Training
  • Educational Programs

  • Wolfram Language Introduction
  • Fast Introduction for Programmers
  • Fast Introduction for Math Students
  • Books

  • Wolfram Community
  • Wolfram Blog
  • Public Resources
  • Wolfram|Alpha
  • Wolfram Problem Generator
  • Wolfram Challenges

  • Computer-Based Math
  • Computational Thinking
  • Computational Adventures

  • Demonstrations Project
  • Wolfram Data Drop
  • MathWorld
  • Wolfram Science
  • Wolfram Media Publishing
  • Customer Resources
  • Store
  • Product Downloads
  • User Portal
  • Your Account
  • Organization Access

  • Support FAQ
  • Contact Support
  • Company
  • About Wolfram
  • Careers
  • Contact
  • Events
Wolfram Community Wolfram Blog
Legal & Privacy Policy
WolframAlpha.com | WolframCloud.com
© 2026 Wolfram
© 2026 Wolfram | Legal & Privacy Policy |
English