valores - Octave/Matlab: Extiende un vector haciéndolo repetir?
vectores en matlab (2)
¿Hay alguna manera de extender un vector haciendo que se repita?
>v = [1 2];
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl
Entonces v10 sería:
>v10
1 2 1 2 1 2 1 2 1 2
Esto debería funcionar para el caso general, no solo para [1 2]
La función que estás buscando es repmat()
.
v10 = repmat(v, 1, 5)
Obviamente repmat es el camino a seguir si sabes en qué dirección deseas expandir el vector.
Sin embargo, si desea una solución general que siempre repita el vector en la dirección más larga, esta combinación de repmat e indexación debería hacer el truco:
v10=v(repmat(1:length(v),1,5))