Create a matrix "z" which has the same elements as "x". If any entry in "z" % is even, increase that entry by one.
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
STAVROS GALANOS
el 26 de Jul. de 2020
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 comentarios
Respuesta aceptada
SAA
el 26 de Jul. de 2020
Editada: SAA
el 26 de Jul. de 2020
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 comentarios
Stephen23
el 26 de Jul. de 2020
Editada: Stephen23
el 26 de Jul. de 2020
"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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!