MATLAB: How to shuffle two vectors

vector

I have for example:
V1 = [1 2 3 4 5 16 17 18 19 20];
V2 = [21 20 19 18 17 4 3 2 1 0];
and
flip = [1 0 0 1 1 1 0 1 0 0];
I would like to generate W1 and W2, where W1(i) = V1(i) if flip(i) = 0, but = V2(i) if flip(i) = 1. And W2 has to be the complementer of W1.

Best Answer

W1 = V1 .* flip + V2 .* ~flip
W2 = V1 .* ~flip + V2 .* flip