function out = move_me(v,a)lng = length(v);for i = 1:lng; %evaluating each position of v in relation to a
if v(i) == a; %if the value is equal, I deleted the value to then move it to the
%back of the function
v(i) = []; v(lng) = a; elseif v ~= a v = [v, zeros(1, i)]; endendout = vend
"The function move_me is defined like this: function w = move_me(v,a). The first input argument v is a row-vector, while a is a scalar. The function moves every element of v that is equal to a to the end of the vector. For example, the command
>> x = move_me([1 2 3 4],2);
makes x equal to [1 3 4 2]. If a is omitted, the function moves occurrences of zeros."
When I run the code, if the vector contains more than one of the same value of a it only moves one of the values to the back. Also, when trying to add zeros to the back if the vector does not contain a, more zeros are added than needed. I'm not quite sure why it is not working. Should I make the elseif statement its own if statement?
Best Answer