Set zero in certain rows of an array to value x

3 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;

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!