如果我这样做:
dim(my_matrix)
[1] 758289 768
typeof(my_matrix)
[1] "double"
max(my_matrix)
[1] 1
my_matrix[my_matrix<=0] = 0.0000001
my_matrix[my_matrix>=1] = 0.9999999
max(my_matrix)
[1] 1
对于使用较小的手工矩阵的这种行为,我没有任何解释。
答案 0 :(得分:1)
如果元素小于1少一点,您将得到您注意到的行为。矩阵越大,元素稍小于1的机会就越大,这可以解释为什么在较小的矩阵中它不会发生。
m <- matrix(0, 4, 4)
m[1,1] <- 1-1e-10
m.original <- m
max(m)
## [1] 1
m[m <= 0] <- 0.0000001
m[m >= 1] <- 0.9999999
max(m)
## [1] 1
请注意
print(max(m.original), digits = 12)
## [1] 0.9999999999
print(max(m), digits = 12)
## [1] 0.9999999999