MATLAB: Change sign of every second element of a vector

sign-changevector

Hi,
I want to change the sign of every second element in a vector, starting from element two. I tried the following code. Can someone explain why it does not work and help me to fix it? Thank you!
function newVector = change(v)
for i = 1:length(v)-1
newVector(i) = v(i);
newVector(i+1) = v(i+1)*-1;
end
v = newVector
end

Best Answer

A = rand(10,1) ;
A(2:2:end) = -A(2:2:end)
If you wat to your function, you should use like this:
function newVector = change(v)
newVector = v ;
for i = 1:length(v)
if ~mod(i,2)
newVector(i) = -v(i);
end
end