DiagonalMatrixQ
DiagonalMatrixQ[m,k]
更多信息和选项
- 即使 m 不是一个方阵,DiagonalMatrixQ[m,k] 依然适用.
- 在 DiagonalMatrixQ[m,k] 中,正的 k 指的是主对角线上方的上对角线,负的 k 指的是主对角线下方的下对角线.
- DiagonalMatrixQ 适用于 SparseArray 和结构化数组对象.
- 可以提供下列选项:
-
Tolerance Automatic 使用的数值容差 - 对于近似矩阵,选项 Tolerance->t 可用来表示所有 Abs[mij]≤t 的项被视为零. »
范例
打开所有单元 关闭所有单元基本范例 (3)
DiagonalMatrixQ[(| | | |
| - | - | - |
| a | 0 | 0 |
| 0 | b | 0 |
| 0 | 0 | c |)]DiagonalMatrixQ[(| | | |
| - | - | - |
| 1 | 0 | 0 |
| 0 | 0 | 2 |
| 3 | 0 | 0 |)]MatrixForm[{{0, a, 0}, {0, 0, b}, {0, 0, 0}}]DiagonalMatrixQ[%, 1]MatrixForm[{{0, 0, 0}, {a, 0, 0}, {0, b, 0}}]DiagonalMatrixQ[%, -1]范围 (12)
基本用法 (8)
(mat23 = {{1, 0, 0}, {0, 2, 0}})//MatrixFormDiagonalMatrixQ[mat23](mat32 = {{1, 0}, {0, 2}, {0, 0}})//MatrixFormDiagonalMatrixQ[mat32]对符号矩阵使用 DiagonalMatrixQ:
DiagonalMatrixQ[{{a, b}, {c, d}}]Block[{b = c = 0}, DiagonalMatrixQ[{{a, b}, {c, d}}]]m = {{1.2, 0, 0}, {0, 2.4, 0}, {0, 0, 3.5}};DiagonalMatrixQ[m]m = {{1, -3I}, {0, 4}};DiagonalMatrixQ[m]{DiagonalMatrixQ[Re[m]], DiagonalMatrixQ[Im[m], 1]}m = (| | | |
| - | - | ------- |
| 0 | 5 | 4 |
| 3 | 1 | Sqrt[2] |
| 3 | 5 | Pi |);DiagonalMatrixQ[m]将 DiagonalMatrixQ 用于任意精度矩阵:
m = RandomReal[5, {3, 3}, WorkingPrecision -> 15]DiagonalMatrixQ[m]DiagonalMatrixQ[(| | | |
| - | - | - |
| 0 | 1 | 0 |
| 0 | 0 | 2 |
| 0 | 0 | 0 |), 1]DiagonalMatrixQ[(| | | |
| - | - | - |
| 0 | 1 | 0 |
| 0 | 0 | 2 |
| 0 | 0 | 0 |), 2]DiagonalMatrixQ[(| | | |
| - | - | - |
| 0 | 1 | 0 |
| 0 | 0 | 2 |
| 0 | 0 | 0 |)]DiagonalMatrixQ[(| | | |
| - | - | - |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 3 | 0 | 0 |), -1]DiagonalMatrixQ[(| | | |
| - | - | - |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 3 | 0 | 0 |), -2]DiagonalMatrixQ[(| | | |
| - | - | - |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 3 | 0 | 0 |)]特殊矩阵 (4)
将 DiagonalMatrixQ 用于稀疏矩阵:
SparseArray[{{1, 3} -> 1, {2, 2} -> 2, {3, 1} -> 3}, {3, 3}]DiagonalMatrixQ[%]SparseArray[{{x_, y_} /; x == y -> 3}, {5, 5}]DiagonalMatrixQ[%]将 DiagonalMatrixQ 用于结构化矩阵:
SymmetrizedArray[{{1, 1} -> 4, {2, 2} -> 5, {3, 3} -> 6}, {3, 3}, Symmetric[All]]DiagonalMatrixQ[%]用于 QuantityArray 结构化矩阵:
QuantityArray[{{1, 0}, {0, 5}}, "Meters"]DiagonalMatrixQ[%]DiagonalMatrixQ[IdentityMatrix[5]]HilbertMatrix 不是对角矩阵:
DiagonalMatrixQ[HilbertMatrix[5]]选项 (1)
Tolerance (1)
m = {{1., 10 ^ -12, 0}, {0, 2., 10 ^ -13}, {0, 0, 3.}};
DiagonalMatrixQ[m]加上 Tolerance 选项,将小于 10-12 的数视为零:
DiagonalMatrixQ[m, Tolerance -> 10 ^ -12]应用 (2)
当且仅当实矩阵为正规矩阵并具有实特征值时,实矩阵才与对角矩阵正交相似:
m = N[HilbertMatrix[3]];
NormalMatrixQ[m]{vals, vecs} = Eigensystem[m];vals∈RealsDiagonalMatrixQ[vecs.m.Transpose[vecs]]OrthogonalMatrixQ[vecs]当且仅当其标准 Jordan 矩阵是对角矩阵时,矩阵才是可对角化的:
mat1 = {{1, 2}, {3, 4}};
(j1 = Last[JordanDecomposition[mat1]])//MatrixForm{DiagonalizableMatrixQ[mat1], DiagonalMatrixQ[j1]}mat2 = {{27, 48, 81}, {-6, 0, 0}, {1, 0, 3}};
(j2 = Last[JordanDecomposition[mat2]])//MatrixForm{DiagonalizableMatrixQ[mat2], DiagonalMatrixQ[j2]}属性和关系 (10)
如果输入不是矩阵,DiagonalMatrixQ 返回 False:
DiagonalMatrixQ[1]DiagonalMatrixQ[{}]DiagonalMatrixQ[{{}, {}}]DiagonalMatrix 创建一个对角矩阵:
(m = DiagonalMatrix[{a, b, c, d}])//MatrixFormDiagonalMatrixQ[m]DiagonalMatrixQ[IdentityMatrix[5]]mat = DiagonalMatrix[Range[5]];DiagonalMatrixQ[Inverse[mat]]DiagonalMatrixQ[MatrixPower[mat, n]]DiagonalMatrixQ[MatrixFunction[f, mat]]m1 = DiagonalMatrix[RandomReal[1., {5}]];
m2 = DiagonalMatrix[RandomReal[1., {5}]];DiagonalMatrixQ[m1.m2]mat = DiagonalMatrix[RandomReal[1., {5}]];{DiagonalMatrixQ[m1], UpperTriangularMatrixQ[m1], LowerTriangularMatrixQ[m1]}DiagonalMatrixQ[m,0] 等价于 DiagonalMatrixQ[m]:
{DiagonalMatrixQ[{{1, 0}, {0, 2}}], DiagonalMatrixQ[{{1, 0}, {0, 2}}, 0]}{DiagonalMatrixQ[{{1, 3}, {4, 2}}], DiagonalMatrixQ[{{1, 3}, {4, 2}}, 0]}仅具有下对角线或超对角线的矩阵
是幂零矩阵,这意味着对于某些
,
:
m1 = DiagonalMatrix[Range[4], -1];
DiagonalMatrixQ[m1, -1]MatrixPower[m1, 5]m2 = DiagonalMatrix[Range[4], 1];
DiagonalMatrixQ[m2, 1]MatrixPower[m2, 5]Band 可用来构建 k-对角稀疏矩阵:
k = RandomInteger[5]m = SparseArray[Band[{1, 1 + k}] -> Range[5], (5 + k){1, 1}]DiagonalMatrixQ[m, k]文本
Wolfram Research (2019),DiagonalMatrixQ,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DiagonalMatrixQ.html.
CMS
Wolfram 语言. 2019. "DiagonalMatrixQ." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/DiagonalMatrixQ.html.
APA
Wolfram 语言. (2019). DiagonalMatrixQ. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DiagonalMatrixQ.html 年
BibTeX
@misc{reference.wolfram_2026_diagonalmatrixq, author="Wolfram Research", title="{DiagonalMatrixQ}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/DiagonalMatrixQ.html}", note=[Accessed: 21-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_diagonalmatrixq, organization={Wolfram Research}, title={DiagonalMatrixQ}, year={2019}, url={https://reference.wolfram.com/language/ref/DiagonalMatrixQ.html}, note=[Accessed: 21-June-2026]}