How to change the positions of elements in a vector?

12 vues (au cours des 30 derniers jours)
federico moro
federico moro le 15 Mai 2017
Hi all, I need to find all the components of a vector that are equal to 3 and move them at the end of the vector. Any suggestion? Thanks

Réponses (2)

Guillaume
Guillaume le 15 Mai 2017
v = [v(v ~= 3), v(v == 3)]; %assuming a row vector. If column vector replace , by ;

kowshik Thopalli
kowshik Thopalli le 15 Mai 2017
Using the find() function you can do this very easily.
[R,c]= find(myVector==3)
This gives you the positions of the elements which are equal to 3. Once you have this you can easily reorder. Hope this helps
  2 commentaires
federico moro
federico moro le 15 Mai 2017
Thanks but then how can I move them to end? It is a long vector I can not do this one by one..
kowshik Thopalli
kowshik Thopalli le 15 Mai 2017
The answer by Guillaume works. I would not have done it As elegantly as that answer

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by