我想在R中的对称矩阵中找到非对角元素中最大绝对值的位置和值.
例如,使用这个小3x3:
matrix(c(99,11,-21, 11,99,13, -21,13,99), nrow = 3, ncol=3, byrow=TRUE)
[,1] [,2] [,3]
[1,] 99 11 -21
[2,] 11 99 13
[3,] -21 13 99
Run Code Online (Sandbox Code Playgroud)
我想知道-21作为值,1,3或3,1作为位置
除了"蛮力"之外,还有什么方法可以做到这一点吗?
谢谢PS
在编程时,总是很难知道别人认为是什么"暴力".也就是说,对于方形矩阵(此处命名M),您可以执行以下操作:
m <- M
diag(m) <- NA
(mmax <- max(abs(m), na.rm=TRUE))
# [1] -21
which(abs(m) == mmax, arr.ind=TRUE)
# row col
# [1,] 3 1
# [2,] 1 3
Run Code Online (Sandbox Code Playgroud)