Create a matrix "z" which has the same elements as "x". If any entry in "z" % is even, increase that entry by one.
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
Can anyone helo me with this one?
Create a matrix "z" which has the same elements as "x". If any entry in "z" is even, increase that entry by one.
댓글 수: 0
채택된 답변
SAA
2020년 7월 26일
편집: SAA
2020년 7월 26일
What is the part that you're stuck on?
you need to use a for loop and an if else like this:
.... % defining your variables and all that
for i=1:numel(z)
if mod(z(i),2) == 0 % thats how to see if it's even or not
z(i) = z(i)+1; % something like this
end
end
댓글 수: 2
Stephen23
2020년 7월 26일
편집: Stephen23
2020년 7월 26일
"you need to use a for loop and an if else like this:"
Not true. With MATLAB, neither a loop nor if-else is required, basic logical indexing works perfectly:
>> x = randi(9,3,5)
x =
6 5 3 4 7
5 1 6 7 7
8 8 5 9 4
>> z = x;
>> y = mod(z,2)==0;
>> z(y) = z(y)+1
z =
7 5 3 5 7
5 1 7 7 7
9 9 5 9 5
as do several other even simpler methods which do not require loops or if-else:
>> z = x + ~mod(x,2)
z =
7 5 3 5 7
5 1 7 7 7
9 9 5 9 5
If you are using loops and if-else to solve basic problems like this, then you are not learning how to use MATLAB.
추가 답변 (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!