diag

创建对角矩阵或获取矩阵的对角元素

语法
D = diag(v)
D = diag(v,k)

x = diag(A)
x = diag(A,k)
说明
D = diag(v)返回包含主对角线上向量 v 的元素的对角矩阵。

例子

创建一个 1×5 的向量。

v = [2 1 -1 -2 -5];
使用 diag 创建一个包含 v 在主对角线上的元素的矩阵。

D = diag(v)

D = 

     2     0     0     0     0
     0     1     0     0     0
     0     0    -1     0     0
     0     0     0    -2     0
     0     0     0     0    -5

D = diag(v,k)将向量 v 的元素放置在第 k 条对角线上。k=0 表示主对角线,k>0 位于主对角线上方,k<0 位于主对角线下方。

例子

创建一个包含 v 在第一个上对角线 (k=1) 上的元素的矩阵。

D1 = diag(v,1)

D1 = 

     0     2     0     0     0     0
     0     0     1     0     0     0
     0     0     0    -1     0     0
     0     0     0     0    -2     0
     0     0     0     0     0    -5
     0     0     0     0     0     0

结果为一个 6×6 矩阵。将一个长度为 n 的向量指定为输入时,diag 返回一个大小为 n+abs(k) 的方阵。

x = diag(A)返回 A 的主对角线元素的列向量。

例子

获取一个随机 6×6 矩阵的主对角线上的元素。

A = randi(10,6)

A = 

     9     3    10     8     7     8
    10     6     5    10     8     1
     2    10     9     7     8     3
    10    10     2     1     4     1
     7     2     5     9     7     1
     1    10    10    10     2     9

x = diag(A)

x = 

     9
     6
     9
     1
     7
     9

x = diag(A,k) 返回 A 的第 k 条对角线上元素的列向量。

例子

获取 A 的第一个下对角线 (k=-1) 上的元素。结果比主对角线少一个元素。

x1 = diag(A,-1)

x1 = 

    10
    10
     2
     9
     2

调用 diag 两次将返回一个包含原始矩阵的对角元素的对角矩阵。

A1 = diag(diag(A))

A1 = 

     9     0     0     0     0     0
     0     6     0     0     0     0
     0     0     9     0     0     0
     0     0     0     1     0     0
     0     0     0     0     7     0
     0     0     0     0     0     9

你可能感兴趣的:(diag)