Octave / Matlab: Étendre un vecteur pour le faire se répéter?

Est-il possible d’étendre un vecteur en le faisant se répéter?

>v = [1 2]; >v10 = vx 5; %x represents some function. Something like "1 2" x 5 in perl 

Alors, v10 serait:

 >v10 1 2 1 2 1 2 1 2 1 2 

Cela devrait fonctionner pour le cas général, pas seulement pour [1 2]

La fonction que vous recherchez est repmat() .

 v10 = repmat(v, 1, 5) 

De toute évidence, repmat est la voie à suivre si vous savez dans quelle direction vous voulez élargir le vecteur.

Cependant, si vous voulez une solution générale qui répète toujours le vecteur dans le sens le plus long, cette combinaison de repmat et d’indexation devrait faire l’affaire:

  v10=v(repmat(1:length(v),1,5))