diag

作者: 庵下桃花仙 | 来源:发表于2018-08-03 10:53 被阅读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
    

    相关文章

      网友评论

        本文标题:diag

        本文链接:https://www.haomeiwen.com/subject/pwkyvftx.html