【问题标题】:Matrix manipulation to compute the minimum value of the upper and lower triangular matrix矩阵操作计算上下三角矩阵的最小值
【发布时间】:2017-03-19 12:01:26
【问题描述】:

我想创建一个最小值来比较矩阵的下三角矩阵和上三角矩阵。例如

 A = matrix( c(2, 4, 3, 1, 5, 7,4,2,4), nrow=3, ncol=3,byrow = TRUE)  
 B= matrix(c(0,1,3,1,0,2,3,2,0), nrow=3, ncol=3,byrow= TRUE) 

我想创建一个这样的矩阵,其中对角元素设置为 0,其余元素为上下元素的最小值。例如 (A(1,2), A(2,1)),即 min(4,1) =1。这导致矩阵 B。任何人都可以建议如何实现这种操作吗?

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    我想你想用pmin:

    A <- matrix( c(2, 4, 3, 1, 5, 7,4,2,4), nrow=3, ncol=3,byrow = TRUE)  
    diag(A) <- 0
    output <- pmin(A, t(A))
    output
     [,1] [,2] [,3]
    [1,]    0    1    3
    [2,]    1    0    2
    [3,]    3    2    0
    

    【讨论】:

      【解决方案2】:

      这样做:

      B = ifelse(A<t(A),A,t(A))
      diag(B) = 0
      
      > B
           [,1] [,2] [,3]
      [1,]    0    1    3
      [2,]    1    0    2
      [3,]    3    2    0
      

      先求A和转置A之间的最小值,然后设置对角元素为0。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 2019-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多