MATLAB diag 在向量与对角矩阵之间转换:传入向量则生成对角矩阵;传入矩阵则取出主对角线。
语法
D = diag(v) % 向量 → 对角矩阵
d = diag(A) % 矩阵 → 主对角线
D = diag(v, k) % 放到第 k 条对角线上输入参数
| 参数 | 说明 |
|---|---|
v | 向量,作为对角线元素 |
A | 矩阵,从中提取对角线 |
k | 对角线编号:0 为主对角线,正为上方,负为下方 |
输出
输入为向量时,得到方阵,非对角元素为 0。输入为矩阵时,得到列向量。
示例
diag([10 20 30])ans =
10 0 0
0 20 0
0 0 30从矩阵取主对角线:
A = [1 2 3; 4 5 6; 7 8 9];
diag(A)ans =
1
5
9放到主对角线上方一条:
diag([1 2], 1)ans =
0 1 0
0 0 2
0 0 0注意事项
- 同一函数名按输入是向量还是矩阵改变含义,先确认输入类型。
- 单位矩阵用 eye,不必手写
diag(ones(n,1))。