Есть ли способ расширить вектор, заставив его повторяться?
>v = [1 2];
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl
Тогда v10 будет:
>v10
1 2 1 2 1 2 1 2 1 2
Это должно работать в общем случае, а не только для [1 2]
v=[1 2]
иv100=kron(ones(1,100),v)
является векторомv100=[v v ... v]
(100 раз). Если вы хотите объединить некоторый вектор-столбецy
с самим собойK
разом, используйтеyK=kron(ones(K,1),y)
.Ответы:
Функция, которую вы ищете
repmat()
.v10 = repmat(v, 1, 5)
источник
Очевидно, что repmat - это правильный путь, если вы знаете, в каком направлении вы хотите расширить вектор.
Однако, если вам нужно общее решение, которое всегда повторяет вектор в самом длинном направлении, эта комбинация repmat и индексации должна помочь:
v10=v(repmat(1:length(v),1,5))
источник