美文网首页收藏
R语言对称矩阵提取上三角/下三角矩阵?

R语言对称矩阵提取上三角/下三角矩阵?

作者: 生物信息与育种 | 来源:发表于2023-04-12 22:45 被阅读0次

    目标

    输入矩阵

          col.1 col.2 col.3 col.4
    row.1     1     2     3     4
    row.2     5     6     7     8
    row.3     9    10    11    12
    row.4    13    14    15    16
    

    输出矩阵

          col.1 col.2 col.3 col.4
    row.1     1     2     3     4
    row.2     0     6     7     8
    row.3     0     0    11    12
    row.4     0     0     0    16
    

    代码

    mat.1 <- matrix(1:16, # 1—16个向量
                    ncol = 4, # 4列
                    nrow = 4, # 4行
                    byrow=TRUE, # byrow=T 表示向量按行的顺序进行,默认的话,会按列的顺序进行排列
                    dimnames = list(c(paste("x", 1:4, sep = ".")), # 对维度(行列)进行命名, 可以这么看list(x,y) 表示行列
                                    c(paste("y", 1:4, sep = ".")))) # x由x.1....x.4组成,y由y.1....y.4组成
    mat.1
    rownames(mat.1) <- paste("row", 1:4, sep=".")
    colnames(mat.1) <- paste("col", 1:4, sep=".")
    mat.1
    # 生成上三角矩阵
    # diag参数如果为TRUE,表示把矩阵对角也包括进来。设置为FALSE就是不包括。
    # mat.1[!upper.tri(mat.1, diag = TRUE)] <- ""
    mat.1[!upper.tri(mat.1, diag = TRUE)] <- 0
    mat.1
    mat.1[!upper.tri(mat.1, diag = F)] <- NA
    mat.1
    
    # 生成下三角矩阵
    mat.1[!lower.tri(mat.1, diag = TRUE)] <- 0
    mat.1
    

    Ref:https://ask.csdn.net/questions/755432

    相关文章

      网友评论

        本文标题:R语言对称矩阵提取上三角/下三角矩阵?

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