MATLAB: Replacing all numbers in a certain row

change valuesinputloop

Hi Guys Is there a way to replace all values in a row if just one value in the row meet a condition. Given a random 5×5 matrix. my condition is, if one number in a row is equal to -3, then all values in that row must be changed to -3.
To start with I thought that i could make a for loop, and then check each row and see if it meet the condition
Thank you in advance!
-David

Best Answer

Where M is your matrix:
M(any(M==-3,2),:) = -3
For example:
>> M = randi(9,5);
>> M(4,2) = -3
M =
5 2 5 1 7
2 3 5 8 3
6 3 4 9 5
8 -3 9 7 2
5 6 8 8 9
>> M(any(M==-3,2),:) = -3
M =
5 2 5 1 7
2 3 5 8 3
6 3 4 9 5
-3 -3 -3 -3 -3
5 6 8 8 9