MATLAB: Change specific matrix values to negatives

findmatrixnegative

Hello,
I have two matrices of equal size. One contains negatives and the other does not. I want top convert the values on the positive matrix, that correspond top the negative valus on the other matrix, to negatives. i.e., if: A = [2,1,0,-1,-2,-1,0,1,2]; and B = [4,2,0,2,4,2,0,2,4];
what is the easiest way to make:
B = [4,2,0,-2,-4,-2,0,2,4];
Thanks,
Max

Best Answer

B.*sign(A)
or
(1-(A < 0)*2).*B
or
B(A < 0) = -B(A < 0);