Как создать циклы для случайных матриц - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь создать цикл, чтобы я мог создать 1000 случайных матриц 2x2 (в диапазоне от -10 до 10)

, пока у меня есть

M = matrix(c(z = runif(4,min = -10, max = 10)),
           nrow = 2, ncol = 2, byrow = TRUE)

Я пыталсяиспользовать k = 1000

for (i in 1:k) {
  if (i>=0) print (i) else (print(-i)
}

1 Ответ

1 голос
/ 19 мая 2019

Вам не нужно for.loops, чтобы достичь этого.Вы можете сделать это, используя lapply.Таким образом, вы создаете список, содержащий матрицы:

set.seed(1)
lapply(1:3, function(z) matrix(runif(4, min = -10, max = 10), nrow = 2, ncol = 2))
[[1]]
          [,1]     [,2]
[1,] -4.689827 1.457067
[2,] -2.557522 8.164156

[[2]]
          [,1]     [,2]
[1,] -5.966361 8.893505
[2,]  7.967794 3.215956

[[3]]
          [,1]      [,2]
[1,]  2.582281 -5.880509
[2,] -8.764275 -6.468865

Чтобы создать 1000 матриц, используйте 1:1000 вместо 1:3.

Если вы настаиваете на использовании цикла, вы можетеиспользуйте решение Маркуса из комментариев:

k <- 1000
out <- vector("list", length = k)
set.seed(1)
for (i in 1:k) { 
  out[[i]] <- matrix(runif(4, min = -10, max = 10), nrow = 2, ncol = 2) 
}
out
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...