Existe-t-il un moyen d'étendre un vecteur en le faisant se répéter?
>v = [1 2];
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in Perl
Alors la 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 souhaitez étendre le vecteur.
Cependant, si vous voulez une solution générale qui répète toujours le vecteur dans la direction la plus longue, cette combinaison de repmat et d'indexation devrait faire l'affaire:
v10=v(repmat(1:length(v),1,5))