r - 矩阵操作计算上下三角矩阵的最小值

标签 r matrix

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

 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/

相关文章:

r - 从 R 中的 HTML 片段中提取 URL

c++ - GLM View 矩阵导致模型矩阵无效

c - 在邻接矩阵中随机添加 INFTY 值

r - 如果我有 R 中的纬度和经度,如何找到美国县最近的县?

r - ggplot : how to color points different than the connecting line

R:ggplot 中特定条形之间的间隙

r - 使用bigquery时,tidyverse API OAuth token 到期之前增加时间?

c++ - Direct3D - 如何从 View 矩阵计算滚动?

c++ - 如何创建一个 boost 矩阵数组?

c++ - 在矩阵 C++ 中交换 2 行