Странное поведение матрицы в r - PullRequest
0 голосов
/ 09 марта 2020

Если я сделаю:

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

У меня нет объяснения этому поведению с меньшими матрицами ручной работы, оно работает без проблем.

1 Ответ

1 голос
/ 09 марта 2020

Если элемент меньше единицы, вы можете получить поведение, которое заметили. Чем больше матрица, тем больше вероятность того, что элемент чуть меньше единицы, что объясняет, почему этого не произошло для более мелких матриц.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...