diag
2018-08-03 本文已影响3人
庵下桃花仙
创建对角矩阵或获取矩阵的对角元素
语法
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