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?

 Risposta accettata

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

3 Commenti

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, [])
That is also what I meant, but... brain did not engage properly.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLAB Coder in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by