MATLAB Answers

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

44 views (last 30 days)
Olivia Gilliam
Olivia Gilliam on 11 Feb 2021
Edited: Sourabh Kondapaka on 18 Feb 2021
  4 Comments
Olivia Gilliam
Olivia Gilliam on 11 Feb 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?

Sign in to comment.

Answers (1)

Sourabh Kondapaka
Sourabh Kondapaka on 17 Feb 2021
Edited: Sourabh Kondapaka on 18 Feb 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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by