MATLAB中的diag函数

    xiaoxiao2021-03-25  135

    diag函数功能:矩阵对角元素的提取和创建对角阵

    设以下X为方阵,v为向量

    1、X = diag(v,k)当v是一个含有n个元素的向量时,返回一个n+abs(k)阶方阵X,向量v在矩阵X中的第k个对角线上,k=0表示主对角线,k>0表示在主对角线上方,k<0表示在主对角线下方。例1:

    v=[1 2 3]; diag(v, 3)

    ans =

         0     0     0     1     0     0      0     0     0     0     2     0      0     0     0     0     0     3      0     0     0     0     0     0      0     0     0     0     0     0      0     0     0     0     0     0

    注:从主对角矩阵上方的第三个位置开始按对角线方向产生数据的

    例2:

    v=[1 2 3]; diag(v, -1) ans =       0 0 0 0       1 0 0 0       0 2 0 0       0 0 3 0

    注:从主对角矩阵下方的第一个位置开始按对角线方向产生数据的

    2、X = diag(v)

    向量v在方阵X的主对角线上,类似于diag(v,k),k=0的情况。

    例3:

    v=[1 2 3]; diag(v)

    ans =

    1 0 0 0 2 0 0 0 3

    注:写成了对角矩阵的形式

     3、v = diag(X,k)

    返回列向量v,v由矩阵X的第k个对角线上的元素形成

    例4:

     v=[1 0 3;2 3 1;4 5 3]; diag(v,1)

    ans =

         0      1

    注:把主对角线上方的第一个数据作为起始数据,按对角线顺序取出写成列向量形式

    4、v = diag(X)返回矩阵X的主对角线上的元素,类似于diag(X,k),k=0的情况例5:

    v=[1 0 0;0 3 0;0 0 3]; diag(v)

    ans =

    1 3 3

    或改为:

    v=[1 0 3;2 3 1;4 5 3]; diag(v)

    ans =

    1 3 3

    注:把主对角线的数据取出写成列向量形式

    5、diag(diag(X))

    取出X矩阵的对角元,然后构建一个以X对角元为对角的对角矩阵。 例6:

     X=[1 2;3 4]         diag(diag(X))

    X =

         1     2      3     4

     

    ans =

         1     0      0     4

    转载请注明原文地址: https://ju.6miu.com/read-34872.html

    最新回复(0)