Octave / Matlab: estendi un vettore facendolo ripetere?

C’è un modo per estendere un vettore facendolo ripetere?

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

Quindi v10 sarebbe:

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

Questo dovrebbe funzionare nel caso generale, non solo per [1 2]

La funzione che stai cercando è repmat() .

 v10 = repmat(v, 1, 5) 

Ovviamente repmat è la strada da percorrere se sai in che direzione vuoi espandere il vettore.

Tuttavia, se si desidera una soluzione generale che ripeti sempre il vettore nella direzione più lunga, questa combinazione di repmat e indicizzazione dovrebbe fare il trucco:

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