Set zero in certain rows of an array to value x

조회 수: 2 (최근 30일)
Max Bornemann
Max Bornemann 2019년 2월 22일
댓글: Max Bornemann 2019년 2월 22일
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.

채택된 답변

Jan
Jan 2019년 2월 22일
편집: Jan 2019년 2월 22일
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
Max Bornemann
Max Bornemann 2019년 2월 22일
Thank you! I´m really impressed of how fast I receive answers here, genious!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Andrei Bobrov
Andrei Bobrov 2019년 2월 22일
A((A + [0;2;2]) == 2) = 1e6;

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by