How to change the positions of elements in a vector?

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

Answers (2)

v = [v(v ~= 3), v(v == 3)]; %assuming a row vector. If column vector replace , by ;
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 Comments

Thanks but then how can I move them to end? It is a long vector I can not do this one by one..
The answer by Guillaume works. I would not have done it As elegantly as that answer

Sign in to comment.

Categories

Asked:

on 15 May 2017

Commented:

on 15 May 2017

Community Treasure Hunt

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

Start Hunting!