Pregunta

¿Hay una manera de extender un vector por lo que se repite?

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

A continuación, v10 sería:

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

Esto debería funcionar para el caso general, no sólo para [1 2]

¿Fue útil?

Solución

La función que está buscando es repmat() .

v10 = repmat(v, 1, 5)

Otros consejos

Obviamente repmat es el camino a seguir si usted sabe en qué dirección desea ampliar el vector.

Sin embargo, si desea una solución general que siempre se repite el vector en la dirección más larga, esta combinación de repmat y la indexación debe hacer el truco:

 v10=v(repmat(1:length(v),1,5))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top