【发布时间】:2013-07-10 12:33:48
【问题描述】:
我希望找到矩阵的最大元素值及其位置(在矩阵中的行和列 id 中)。
我正在使用以下函数来返回矩阵的行和列。
这似乎是一个糟糕的 hack —— 这是我可能缺少本地方法的事情。有没有更好的 / more R 方式?
这是我的功能:
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]
【问题讨论】:
-
解决方案是相同的,但我确实搜索过,我认为有一个解决方案可以同时满足 max 和 min 的情况(我记得也搜索过 min)。此外,该功能(尽管在这种情况下是多余的)可能具有一定的教学价值。