Efficient reordering of vector

I would like to reorder vector as following:
a = [1 2 3 4 5 6 7 8 9 10 11 12]
to
r = [1 5 9 2 6 10 3 7 11 4 8 12]
what would be efficient way of doing so?

 Respuesta aceptada

Walter Roberson
Walter Roberson el 3 de Dic. de 2015
reshape( reshape(a, 4, 3).', 1, [])

3 comentarios

Guillaume
Guillaume el 3 de Dic. de 2015
or more generically
reshape(reshape(a, [], stride).', 1, [])
In that line, "stride" would have to mean the number of elements in each sub-group. I tend to instead think of stride in terms of the difference between adjacent indices, and for that you would use
reshape(reshape(a,stride,[]).' 1, [])
Guillaume
Guillaume el 3 de Dic. de 2015
That is also what I meant, but... brain did not engage properly.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB Coder en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 3 de Dic. de 2015

Comentada:

el 3 de Dic. de 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by