Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

isdiag

确定矩阵是否为对角矩阵

说明

示例

如果 A 是一个对角矩阵,则 tf = isdiag(A) 返回逻辑值 1 (true);否则返回逻辑值 0 (false)。

示例

全部折叠

创建一个 4×4 单位矩阵。

I = eye(4)
I = 4×4

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

通过测试查看该矩阵是否为对角矩阵。

isdiag(I)
ans = logical
   1

结果为逻辑值 1 (true),这是因为 I 中的所有非零元素均在主对角线上。

创建一个主对角线和第一条对角线上具有非零元素的矩阵。

A = 3*eye(4) + diag([2 2 2],1)
A = 4×4

     3     2     0     0
     0     3     2     0
     0     0     3     2
     0     0     0     3

通过测试查看该矩阵是否为对角矩阵。

isdiag(A)
ans = logical
   0

该矩阵不是对角矩阵,因为主对角线上方有非零元素。

根据 A 的主对角线元素创建一个新矩阵 B

B = diag(diag(A));

测试以查看 B 是否为对角矩阵。

isdiag(B)
ans = logical
   1

结果为逻辑值 1 (true),这是因为 B 的主对角线上方或下方没有任何非零元素。

输入参数

全部折叠

输入数组,指定为数值数组。如果 A 具有两个以上的维度,则 isdiag 返回逻辑值 0 (false)。

数据类型: single | double
复数支持:

详细信息

全部折叠

对角矩阵

如果一个矩阵的主对角线上方和下方的所有元素均为零,则该矩阵为对角矩阵。主对角线上的任意数量的元素也可为零。

例如,4×4 单位矩阵,

I4=(1000010000100001)

是对角矩阵。对角矩阵多为方阵,但并非全部为方阵。

提示

  • 使用 diag 函数可生成 isdiag 对其返回逻辑值 1 (true) 的对角矩阵。

  • 函数 isdiagistriuistril 是函数 isbanded 的特例,可使用适当定义的上带宽和下带宽执行所有相同测试。例如,isdiag(A) == isbanded(A,0,0)

扩展功能

另请参阅

| | | | | |

在 R2014a 中推出