Быстрый способ репликации старой матрицы на новую

avatar
Xitrum
29 ноября 2012 в 11:14
61
3
2

например, у меня исходная матрица (m) выглядит так:

1 2
3 4

Затем я использую n = padarray (m, [oldMatrixRow, OldMatrixColumn]); У меня будет

x x x x x x
x x x x x x 
x x 1 2 x x 
x x 3 4 x x 
x x x x x x
x x x x x x

Дело в том, что я бы хотел, чтобы моя новая матрица выглядела так:

1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4

Есть какой-нибудь умный способ сделать это?
Большое спасибо

Источник

Ответы (3)

avatar
mathematician1975
29 ноября 2012 в 11:16
4

Вы хотите repmat

B = repmat(A,m,n)

, где A - это матрица, которую вы хотите повторить, а m и n определяют размеры того, как она повторяется

В вашем случае позвоните в исходную матрицу A и используйте

B = repmat(A,3,3)

, чтобы получить желаемый результат

avatar
Rody Oldenhuis
29 ноября 2012 в 11:48
1

Просто чтобы дать альтернативное решение:

kron(ones(3), [1 2; 3 4])
avatar
Dennis Jaheruddin
29 ноября 2012 в 11:17
3

Предполагая, что вы просто хотите повторить свою матрицу несколько раз, простым способом было бы использовать repmat:

m = [1 2;3 4];
n = repmat(m,3,3)