Clear Filters
Clear Filters

If you have an input argument v that is a row-vector and another input a, that is a scalar. How do you have a function that moves every element of v that is equal to a to the end of the vector?

1 view (last 30 days)
For example,
x= move ([1 2 3 4], 2), i want x to equal to [1 3 4 2]
thanks an advance

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 9 Aug 2016
Edited: Stephen23 on 6 May 2017
Even more generic
a=[1 2 3 4 3 2 1]
idx=a==2
b=[a(~idx),a(idx)]

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 9 Aug 2016
Edited: Azzi Abdelmalek on 9 Aug 2016
x= [1 2 3 4]
idx=2
move=@(x,ii)[x(setdiff(1:numel(x),ii)) x(ii)]
If you want to move the second number of x
out=move(x,2)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!