MATLAB: Perform mathematical operation on matching values

matching

I know how to extract the value of column 3 when column 2 matches a specified integer (in this case 21).
A(A(:,2)==21,3;
How do I alter this expression to not only extract the value of column 3 (when column 2 equals 21) but also perform a mathematical operation on the extracted value.
For example, I'd like to extract the value from column 3 and subtract it from 186.
Any suggestions?

Best Answer

One way is this:
mask = (A(:,2)==21);
% performing the operation and storing it back in A:
% mask is used twice, so I compute it once and use it two times.
A(mask,3) = 186 - A(mask,3);
% Performing the operation but storing it in a separate variable:
% Here since mask is used once you don't need to store it in a separate variable.
newVariable = 186 - A(mask,3);