Hi there.
I am trying to create a function that moves every element of 'v' that is equal to 'a' to the end of the vector. Argument 'v' is the first input and it is a row-vector, while 'a' is a scalar. For example, the command
>> x = move_me([1 2 3 4],2);
makes x equal to [1 3 4 2]
So my function so far looks like this:
function w=moveme(v,a)for ii=1:length(v) if v(ii)==a w=[v(v~=a) v(v==a)]; endend
and seems to work fine. But when I add an extra component to account for the scenario in which no element equals 'a' then my function doesn't work:
for ii=1:length(v) if v(ii)==a w=[v(v~=a) v(v==a)]; else w=v; endend
What am I missing here?
Best Answer
Your loop index ii is not being used. There is no need to use a loop anyway. It can be done in one line: