How would I write this code using for and while loops/

1 visualización (últimos 30 días)
Olivia Gilliam
Olivia Gilliam el 11 de Feb. de 2021
Editada: Sourabh Kondapaka el 18 de Feb. de 2021
  4 comentarios
David Hill
David Hill el 11 de Feb. de 2021
You could use if statement
for i=1:length(V)
if V(i)
V(i)=0;
else
V(i)=1;
end
end
Olivia Gilliam
Olivia Gilliam el 11 de Feb. de 2021
Yeah I finally figured out 2a of the problem. Im working on 2b, so I'm trying to flip every second instance of 0. If I do it right, array V (V = [1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1]), should become V = [1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1]. I underlined the zeroes that should flip to ones.
This is the code I used:
But, instead of getting V = [1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1]
I get:
Any help?

Iniciar sesión para comentar.

Respuestas (1)

Sourabh Kondapaka
Sourabh Kondapaka el 17 de Feb. de 2021
Editada: Sourabh Kondapaka el 18 de Feb. de 2021
I would recommend you to check out the free Matlab OnRamp Course
For 2b:
V = [1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1];
count = 0;
for i = 1 : length(V)
% Below 'if' condition is same as : if V(i) == 0
if ~V(i)
count = count + 1;
% As you want to modify every second instance, i'm just checking the modulus value of count
% with 2.
if mod(count,2) == 0
V(i) = 1;
end
end
end

Categorías

Más información sobre Functions 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!

Translated by