我想创建一个最小值来比较矩阵的下三角矩阵和上三角矩阵。例如
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。任何人都可以建议如何实现这种操作吗?
最佳答案
我想你想使用 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
关于r - 矩阵操作计算上下三角矩阵的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40443231/