Как создать массив Matlab для другого массива - PullRequest
0 голосов
/ 07 ноября 2019

Давайте предположим, что простой массив A

A = [1 2 3 4 5 6 7 8];

Я хотел бы создать массив B, который будет содержать A целых 2 раза:

B = [A A]

Тогда B будет иметь размеры (1,2*length(A))

Как я могу сделать то же самое, но для N раз (например, используя цикл for или что-то подобное)?

for i = 1:N
    B = ???
end

так что

B = [A A A.....A]

Я пытался repmat сделать сначала B в качестве матрицы, а затем reshape. Однако reshape не работает, как я ожидал, и вместо того, чтобы дать:

1     2     3     4     5     6     7     8     1     2     3     4     
5     6     7     8

, он дал:

1     1     2     2     3     3     4     4     5     5     6     6     
7     7     8     8

1 Ответ

2 голосов
/ 07 ноября 2019

Вы должны продолжать складывать их, как: B = [B A] внутри цикла. Или, что еще лучше, используйте функцию repmat(), которая объединяет их в один вызов функции. В вашем случае многоуровневой укладки:

n = 100; % for 100 reps
B = repmat(A,1,n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...