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?

 Réponse acceptée

Walter Roberson
Walter Roberson le 3 Déc 2015

0 votes

reshape( reshape(a, 4, 3).', 1, [])

3 commentaires

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 le 3 Déc 2015
That is also what I meant, but... brain did not engage properly.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB Coder dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by