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

2 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

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

Più risposte (2)

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

Fangjun Jiang
Fangjun Jiang il 3 Mag 2016
n=3;
b=cat(1,repmat(a,n,1),a(1:n))

Categorie

Scopri di più su Operators and Elementary Operations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by