Diagonal
范例
打开所有单元 关闭所有单元基本范例 (4)
{{a, b, c}, {d, e, f}, {g, h, i}}//MatrixFormDiagonal[%]Diagonal[{{a, b, c}, {d, e, f}, {g, h, i}}, 1]Diagonal[{{a, b, c}, {d, e, f}, {g, h, i}}, -1]{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}//MatrixFormDiagonal[%]范围 (12)
基本用法 (7)
Diagonal[{{1.1, 12.2, 3.23}, {2.3, 42.2, 35.3}, {1.2, 3.1, 2.3}}]Diagonal[{{1. + I, 2, 3 - 2 I}, {0, 4 π, 5I}, {E, 0, 6}}, 1]Diagonal[{{2, 3, 1}, {2, 2, 1}, {3, 1, 2}}]Diagonal[RandomReal[1, {3, 3}, WorkingPrecision -> 20]]Diagonal[{{a, b, c, d}, {e, f, g, h}, {i, j, k, l}, {m, n, o, p}}, -2]Diagonal 接受非方阵:
{{3, 2, 2}, {2, 3, -2}, {4, 2, 1}, {3, 7, 9}}//MatrixFormDiagonal[%]m = RandomReal[{1, 9}, {50, 100}];Diagonal[m] //Timing特殊矩阵 (5)
SparseArray[{{1, 1} -> 12, {3, 2} -> 32, {3, 3} -> 33}, {3, 3}]Diagonal[%]Normal[%]s = SparseArray[{Band[{1, 1}] -> x, Band[{2, 1}] -> y, Band[{1, 2}] -> z}, {3, 3}];s//MatrixFormTable[Diagonal[s, k], {k, -2, 2}]Normal[%]SymmetrizedArray[{{1, 2} -> 2, {2, 2} -> I, {3, 1} -> 4, {4, 4} -> 2}, {4, 4}, Symmetric[All]]Diagonal[%]QuantityArray[{{1, 2}, {3, 4}, {5, 6}}, {"Meters", "Seconds"}]Diagonal[%]IdentityMatrix 对角线上的元素全部为 1:
Diagonal[IdentityMatrix[15]]HilbertMatrix 对角线上的元素:
Diagonal[HilbertMatrix[13]]应用 (3)
MatrixForm[m = Array[Subscript[a, ##]&, {4, 4}]]md = DiagonalMatrix[Diagonal[m]];mo = m - md;Map[MatrixForm, {md, mo}]m = {{27, 48, 81}, {-6, 0, 0}, {1, 0, 3}};{s, j} = JordanDecomposition[m]Diagonal[j, 1]直接调用 DiagonalizableMatrixQ 来验证:
DiagonalizableMatrixQ[m]m = {{27, 48, 81}, {-6, 0, 0}, {1, 0, 3}};{s, j} = JordanDecomposition[m]Diagonal[j]直接调用 Eigenvalues 来验证:
Eigenvalues[m]属性和关系 (7)
对于方形矩阵 m 而言,当且仅当 DiagonalMatrixQ[m] 为 True 时有 DiagonalMatrix[Diagonal[m]]==m:
m = (| | |
| - | - |
| a | 0 |
| 0 | d |);{DiagonalMatrix[Diagonal[m]] == m, DiagonalMatrixQ[m]}m = (| | |
| - | - |
| 1 | 2 |
| 3 | 4 |);{DiagonalMatrix[Diagonal[m]] == m, DiagonalMatrixQ[m]}对于矩阵 m,Tr[m] 可表示为 Diagonal 和 Total 的组合:
m = RandomReal[1, {5, 5}];Tr[m] == Total[Diagonal[m]]在 1-n<=k<=n-1 时,n×n 矩阵的 Diagonal[m,k] 给出非空结果:
(m = Table[j - i, {i, 4}, {j, 4}])//MatrixFormTable[Diagonal[m, k], {k, -4, 4}]Diagonal[m,k] 给出 UpperTriangularize[m,k] 的最低非零对角线:
m = (| | | | |
| - | - | - | - |
| 3 | 8 | 7 | 6 |
| 8 | 8 | 1 | 3 |
| 8 | 6 | 6 | 8 |
| 1 | 7 | 3 | 7 |);{Diagonal[m, 2], UpperTriangularize[m, 2]//MatrixForm}同样,Diagonal[m,k] 给出 LowerTriangularize[m,k] 的最高非零对角线:
{Diagonal[m, 1], LowerTriangularize[m, 1]//MatrixForm}可以使用 Band 根据矩阵对角线重构矩阵:
m = RandomReal[1, {5, 5}];m == SparseArray[Table[Band[If[k >= 0, {1, 1 + k}, {1 - k, 1}]] -> Diagonal[m, k], {k, -4, 4}]]对于矩阵 m,Diagonal[m] 等价于 Tr[m,List]:
m = (| | | |
| - | - | - |
| 1 | 2 | 3 |
| 4 | 5 | 6 |);Diagonal[m]Tr[m, List]对于方阵 m,Diagonal[m] 等价于 Transpose[m,{1,1}]:
m = (| | | |
| - | - | - |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |);Diagonal[m]Transpose[m, {1, 1}]相关指南
-
▪
- 子矩阵 ▪
- 矩阵运算 ▪
- GPU 计算 ▪
- 矩阵和线性代数 ▪
- NVIDIA GPU 计算
文本
Wolfram Research (2007),Diagonal,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Diagonal.html.
CMS
Wolfram 语言. 2007. "Diagonal." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Diagonal.html.
APA
Wolfram 语言. (2007). Diagonal. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Diagonal.html 年
BibTeX
@misc{reference.wolfram_2026_diagonal, author="Wolfram Research", title="{Diagonal}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Diagonal.html}", note=[Accessed: 09-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_diagonal, organization={Wolfram Research}, title={Diagonal}, year={2007}, url={https://reference.wolfram.com/language/ref/Diagonal.html}, note=[Accessed: 09-September-2026]}