Filter löschen
Filter löschen

Set zero in certain rows of an array to value x

3 Ansichten (letzte 30 Tage)
Max Bornemann
Max Bornemann am 22 Feb. 2019
Kommentiert: Max Bornemann am 22 Feb. 2019
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.

Akzeptierte Antwort

Jan
Jan am 22 Feb. 2019
Bearbeitet: Jan am 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 Kommentar
Max Bornemann
Max Bornemann am 22 Feb. 2019
Thank you! I´m really impressed of how fast I receive answers here, genious!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by