查找matrix中最大值的行和列索引

我希望find一个matrix的最大元素值和它的位置(matrix中的行和列ID)。

我正在使用下面的函数来返回matrix的行和列。

这似乎是一个糟糕的黑客 – 这是我可能缺less一个本地方法的事情。 有更好的/ 更R的方式?

这是我的function:

matxMax <- function(mtx) { colmn <- which(mtx == max(mtx)) %/% nrow(mtx) + 1 row <- which(mtx == max(mtx)) %% nrow(mtx) return( matrix(c(row, colmn), 1)) } 

我使用如下:

 mm <- matrix(rnorm(100), 10, 10) maxCords <- matxMax(mm) mm[maxCords] 

谢谢

你可以做

 ## Some data set.seed(123) mm <- matrix(rbinom(40, 20, 0.5), 8, 5) mm # [,1] [,2] [,3] [,4] [,5] # [1,] 9 10 8 11 11 # [2,] 12 10 6 11 12 # [3,] 9 14 9 10 6 # [4,] 13 10 14 11 10 # [5,] 13 11 13 9 12 # [6,] 6 10 11 8 8 # [7,] 10 7 11 14 9 # [8,] 13 13 16 13 8 which(mm == max(mm), arr.ind = TRUE) # row col # [1,] 8 3 

这些怎么样?

 which.min(mm) which.max(mm)