如何在R中找到包含负值的矩阵的绝对最大值?


如果矩阵中既有正值也有负值,那么矩阵的最大值将是一个正数,但如果我们想要忽略符号,那么用负号表示的数字也可以是最大值。如果我们想得到带符号的最大值,则可以在R中使用`which.max`函数。请查看下面的例子以了解如何操作。

示例

 在线演示

M1<-matrix(sample(c(-1,5,-2,7,1),36,replace=TRUE),nrow=6)
M1

输出

   [,1] [,2] [,3] [,4] [,5] [,6]
[1,]  7   5    1   -2   -1    1
[2,] -1   5   -1   -1    7    1
[3,] -2   5    7    1   -2   -2
[4,]  5  -1    5   -1    5   -2
[5,] -1   1    1   -1   -1   -1
[6,]  1   7   -2    1    5   -2

示例

M1[which.max(abs(M1))]

输出

[1] 7

示例

 在线演示

M2<-matrix(round(rnorm(100),0),nrow=10)
M2

输出

   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]  0  -1   -1   -1   -1   -1    1    -1    1    0
[2,]  1   0    1    0    2    0    2    -1    0    0
[3,]  0   0    0    1   -1   -1    1     0    0    0
[4,]  1   1   -1    0    0    1   -1     2   -1    0
[5,]  1  -1    1    0    0    0    0     1    0    0
[6,] -1   0    1    2    0   -1    0    -1    2    0
[7,]  0   1   -2   -1   -1    0    0     2    0    0
[8,]  1   0    0    0    0   -1    1     0    0    1
[9,]  1   1   -1   -1    1   -3    0     0    2   -1
[10,] 0   0    0   -1    0    1    0     0    0    1

示例

M2[which.max(abs(M2))]

输出

[1] -3

示例

 在线演示

M3<-matrix(round(runif(25,-5,2),0),nrow=5)
M3

输出

   [,1] [,2] [,3] [,4] [,5]
[1,] 1    1    -1    1    -1
[2,] -5  -3    -1    -4    0
[3,] 2   -3    -2    -2    1
[4,] -3   1    -2    -5    -2
[5,] -2   -2    0    -1    -1

示例

> M3[which.max(abs(M3))]

输出

[1] -5

示例

 在线演示

M4<-matrix(round(rnorm(100,1,0.98),0),nrow=10)
M4

输出

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 2 1 0 1 1 2 0 0 2
[2,] 1 1 2 3 1 2 2 0 0 1
[3,] 1 0 2 2 -1 1 1 0 1 0
[4,] 0 -1 0 0 0 1 -1 1 2 1
[5,] 0 3 -1 2 1 1 1 2 2 0
[6,] 2 2 1 -1 2 2 -1 -1 1 -1
[7,] 3 1 0 1 0 -1 0 2 -1 1
[8,] 1 2 1 1 0 -1 0 0 2 1
[9,] 2 -1 1 0 2 -1 2 0 1 3
[10,] 2 1 -1 3 0 2 1 0 0 2

示例

M4[which.max(abs(M4))]
[1] 3

示例

 在线演示

M5<-matrix(round(rnorm(100,50,41),0),nrow=10)
M5

输出

   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] -16 57 47 63 79 99 17 42 110 104
[2,] -4 55 51 -22 56 59 42 13 74 53
[3,] 2 53 96 84 94 74 86 90 79 18
[4,] -16 100 33 64 65 132 38 58 50 -8
[5,] 166 75 69 125 41 58 28 88 53 75
[6,] 26 3 25 -36 50 81 19 56 55 51
[7,] 55 -28 64 90 94 63 9 153 82 44
[8,] 100 76 63 48 31 66 65 96 106 111
[9,] 86 93 48 145 97 60 44 78 67 84
[10,] -19 82 0 119 68 28 43 65 24 6

示例

M5[which.max(abs(M5))]

输出

[1] 166

示例

 在线演示

M6<-matrix(sample(c(-10:10),64,replace=TRUE),nrow=8)
M6

输出

   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 9    5    -9    6   -1    6    -3 -2
[2,] 5    -1   -1   -10  -5    6    8 -7
[3,] 9    7    1    5    8      4    3 -7
[4,] -2    5   -2    6    0    -1   -9 2
[5,] 10    1    2    9    1    2    2  6
[6,] 8    -3    10    4  -4    2    -6   3
[7,] -1    3    0    8    4    -5  -9 -10
[8,] -9    -8    3  -6    -8   -6    6 -7

示例

M6[which.max(abs(M6))]

输出

[1] 10

更新于:2020-12-05

347 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告