MATRIX MANUPULATION IF CONDTION NOT WORKING
조회 수: 1 (최근 30일)
이전 댓글 표시
I have this matrix M:
0 1 2 4
1 5 4 6
3 3 0 1
7 8 0 5
I want to replace the elements in column 4 with 0 corresponding to which elements in column 2 lie between 4 and 9 (in the same row). For example the above matrix should change to :
0 1 2 4
1 5 4 0
3 3 0 1
7 8 0 0
I wrote this code , but it doesen't seem to work .
for i = 1:4
if 4<M(i,2<9
M(i,4)=0;
end
end
댓글 수: 2
Johan
2022년 3월 1일
Technically the code you wrote can work provided that you divide your logical statement into two combined ones:
M = randi(9,4,4)
M2=M;
for i = 1:4
if 4<M(i,2) && M(i,2)<9
M(i,4)=0;
end
end
M
you can also put a logical matrix in a array variable to change specific data according to your conditions which avoid the need for for loops:
%define value to be changed in colmun 2
conditions = and(M2(:,2)>4,M2(:,2)<9);
%change conditional values in column 4
M2(conditions,4) = 0
채택된 답변
VBBV
2022년 3월 1일
for i = 1:4
if M(i,2)<9 & M(i,2) >4
M(i,4)=0;
end
end
Close the parenthesis and run it.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!