| MATLAB® | ![]() |
| On this page… |
|---|
Constructing a Matrix from a Diagonal Vector |
There are several MATLAB® functions that work specifically on diagonal matrices.
Function | Description |
|---|---|
Construct a block diagonal matrix from input arguments. | |
Return a diagonal matrix or the diagonals of a matrix. | |
Compute the sum of the elements on the main diagonal. | |
Return the lower triangular part of a matrix. | |
Return the upper triangular part of a matrix. |
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
The tril and triu functions return a triangular portion of a matrix, the former returning the piece from the lower left and the latter from the upper right. By default, the main diagonal of the matrix divides these two segments. You can use an alternate diagonal by specifying an offset from the main diagonal as a second input argument:
A = magic(6);
B = tril(A, -1)
B =
0 0 0 0 0 0
3 0 0 0 0 0
31 9 0 0 0 0
8 28 33 0 0 0
30 5 34 12 0 0
4 36 29 13 18 0
You can diagonally concatenate matrices to form a composite matrix using the blkdiag function. See Creating a Block Diagonal Matrix for more information on how this works.
![]() | Shifting and Sorting Matrices | Empty Matrices, Scalars, and Vectors | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |