MATLAB: Set vector elements of one vector to nonzero elements of another

vector nonzero

So I have two vectors:
v1, v2, both same size.
I want to find all the elements where v2 is not zero and set the corresponding elements in v1 to those values, while leaving the other elements in v1 untouched.
E.g.
v1=[1 2 3 4 5] v2=[1 0 1 1 0]
Code I need goes here
v1 –> [1 2 1 1 5]
Can I do this without loops? Thanks.

Best Answer

v1(logical(v2)) = v2(logical(v2));
or on two lines:
idx = logical(v2);
v1(idx) = v2(idx);