How to copy an array with some left-over indicies also added on?

1 visualización (últimos 30 días)
I have the following vector I would like to copy:
a = [1;2;3;4;5]
I would like my resulting vector to be
b = [1;2;3;4;5;1;2;3;4;5;1;2;3;4;5;1;2;3]
Where it is [a] 3 times repeated, and then repeats the next 3 indicies of [a], but not the whole vector. The repmat command will not allow me to repeat it by anything other than an integer. Is there a way to specify how many more indicies I want without having to do it manually?
Thanks!

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 3 de Mayo de 2016
You can use repmat
a = [1;2;3;4;5]
b=[repmat(a,3,1); a(1:3)]

Más respuestas (2)

the cyclist
the cyclist el 3 de Mayo de 2016
Here's one way:
b = a(mod(0:17,numel(a))+1)

Fangjun Jiang
Fangjun Jiang el 3 de Mayo de 2016
n=3;
b=cat(1,repmat(a,n,1),a(1:n))

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by