📌  相关文章
📜  在 R 中的矩阵中查找最大值和最小值的行和列索引(1)

📅  最后修改于: 2023-12-03 15:07:47.854000             🧑  作者: Mango

在 R 中的矩阵中查找最大值和最小值的行和列索引

在 R 中,我们可以使用 which 函数来查找矩阵中最大值和最小值的行和列索引。

查找矩阵中的最大值和最小值

我们先生成一个示例矩阵:

m <- matrix(rnorm(25), 5, 5)
m

输出为:

          [,1]      [,2]       [,3]       [,4]       [,5]
[1,] -0.6072876  1.511781  0.0551284  0.4028996  0.7631757
[2,]  0.7051827  0.389843 -0.3056010 -0.0334819  0.9878915
[3,]  1.3527512 -0.621240  1.5117812  0.5225773 -0.0165662
[4,] -0.6212402 -2.214700 -0.6868529 -0.4830973 -0.8460065
[5,] -2.2146999  1.124930 -0.2179749 -1.2883362  0.4742666

接下来,我们使用 which.maxwhich.min 函数查找矩阵中的最大值和最小值的位置:

max_index <- which(m == max(m), arr.ind = TRUE)
min_index <- which(m == min(m), arr.ind = TRUE)

max_index
min_index

输出为:

     row col
[1,]   3   3
     row col
[1,]   5   1

其中,which.max 函数返回矩阵中最大值的位置,which.min 函数返回矩阵中最小值的位置。参数 arr.ind = TRUE 表示返回行列索引,而不是向量索引。

获取最大值和最小值的行和列索引

上面我们已经获取到了矩阵中最大值和最小值的位置,现在我们来提取行和列索引:

max_row <- max_index[1]
max_col <- max_index[2]
min_row <- min_index[1]
min_col <- min_index[2]

cat("最大值的位置:行", max_row, "列", max_col, "\n")
cat("最小值的位置:行", min_row, "列", min_col)

输出为:

最大值的位置:行 3 列 3
最小值的位置:行 5 列 1

这里使用 cat 函数来打印结果,通过 "\n" 实现换行。

总结

以上就是在 R 中查找矩阵中最大值和最小值的行和列索引的方法。我们可以先使用 which 函数查找最大值和最小值的位置,再使用索引提取行列索引。