Set zero in certain rows of an array to value x

5 views (last 30 days)
Hi,
I have an 3x6 array A:
A=[1 1 0 1 0 1;1 1 0 0 1 1; 1 1 0 1 1 1];
x=1000000;
Now i want to set all zeros in row 2 and 3 to 1.000.000. The zeros in row 1 shall stay zero, so
A(A==0)=x;
doesn`t work, because it makes every zero in the whole array to value 1000000.
I tried it with help of an if-condition, but it doesn´t work either:
if A(2:3,:)==0
A(2:3,:)=x;
end
I will greatly appreciate any assistance.

Accepted Answer

Jan
Jan on 22 Feb 2019
Edited: Jan on 22 Feb 2019
A = [1 1 0 1 0 1;1 1 0 0 1 1; 1 1 0 1 1 1];
x = 1000000;
% all zeros in row 2 and 3 to 1.000.000
match = (A == 0);
match(1, :) = false; % Do not access 1st row
A(match) = x
or
B = A(2:3, :);
B(B == 0) = x;
A(2:3, :) = B
  1 Comment
Max Bornemann
Max Bornemann on 22 Feb 2019
Thank you! I´m really impressed of how fast I receive answers here, genious!

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 22 Feb 2019
A((A + [0;2;2]) == 2) = 1e6;

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!