Скажите, что у меня есть матрица с размерами 2х2. Как бы я создал массив 2x2xk, который является просто k итераций матрицы a?
Я подозреваю, что пакет abind - мой друг, но до сих пор я не выяснил, как сделать какую-то формулу rep (a, k), которая копирует всю матрицу, а не только элементы. Я не могу найти способ сделать это за исключением перечисления матрицы a k раз в формуле abind, как в коде ниже для массива 2x2x6.
a <- matrix(c(1,0,0,1), nrow=2) library(abind) axk <- abind(a,a,a,a,a,a,along=3)
Я хочу, чтобы выходные данные были эквивалентны axk, но без необходимости перечислять матрицу k раз.
Вы можете сделать
> replicate(6, a) , , 1 [,1] [,2] [1,] 1 0 [2,] 0 1 , , 2 [,1] [,2] [1,] 1 0 [2,] 0 1 , , 3 [,1] [,2] [1,] 1 0 [2,] 0 1 , , 4 [,1] [,2] [1,] 1 0 [2,] 0 1 , , 5 [,1] [,2] [1,] 1 0 [2,] 0 1 , , 6 [,1] [,2] [1,] 1 0 [2,] 0 1