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!