Как дублировать матрицы в массиве - PullRequest
0 голосов
/ 25 апреля 2019

Скажите, что у меня есть матрица с размерами 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 раз.

1 Ответ

1 голос
/ 25 апреля 2019

Вы можете сделать

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