Set zero in certain rows of an array to value x

5 vues (au cours des 30 derniers jours)
Max Bornemann
Max Bornemann le 22 Fév 2019
Commenté : Max Bornemann le 22 Fév 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.

Réponse acceptée

Jan
Jan le 22 Fév 2019
Modifié(e) : Jan le 22 Fév 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 commentaire
Max Bornemann
Max Bornemann le 22 Fév 2019
Thank you! I´m really impressed of how fast I receive answers here, genious!

Connectez-vous pour commenter.

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 22 Fév 2019
A((A + [0;2;2]) == 2) = 1e6;

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by