Mi blog personal sobre investigación y divulgación
Tag Archives: matrices
Cómo repetir elementos de un vector en MATLAB



Hoy descubrí una función de MATLAB hasta ahora desconocida para mí, llamada kron. El descubrimiento surgió de la necesidad de solucionar este aparentemente sencillo problema: ¿cómo repetir n veces cada uno de los elementos de un vector, de manera que se repita el primer valor, luego el segundo, y así sucesivamente?

Para verlo más claro, veámoslo con números. Supongamos que tengo un vector cuyos elementos son 1, 2, 3, 4 y 5,  y lo que quiero conseguir es un vector cuyos elementos son 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5. Es decir, quiero repetir 4 veces cada uno de los elementos.

Para hacer esto sin necesidad de programar un bucle con un clásico for, podemos usar la función kron de esta manera:

kron(x, ones(n,1))

En el caso del ejemplo que puse arriba, habría que escribir:

>> nuestrovector=[1,2,3,4,5]

> resultado=kron(nuestrovector, ones(4,1))

>> resultadofinal=reshape(resultado,1,size(resultado,1)*size(resultado,2))

Y entonces resultado sería nuestro nuevo vector donde ya tenemos los elementos repetidos.

Kron, viene del producto de Kronecker (aquí puedes ver la documentación de Mathworks sobre esta función de MATLAB) que podemos aprovechar para solucionar nuestro problema.