MATLAB 数组函数参考

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))。