How to save all runs in the while loop

1 view (last 30 days)
I'm trying to figure out how to save every point in my while loop in order to graph it in the comet function. My code looks like:
n = 1
score = 0
while n < 100
n = n + 1
x = randi(2);
if (x == 1)
score = score + 1;
elseif(x == 2)
score = score - 1;
end
end
comet(score)
All it currently does is show what score ends as and i what to plot every point before then as well. What should i change it to to make it keep and plot every prevouis score?

Accepted Answer

Von Duesenberg
Von Duesenberg on 11 Mar 2018
Try this:
allScores = zeros(99,1);
n = 1;
score = 0;
while n < 100
x = randi(2);
if (x == 1)
score = score + 1;
elseif(x == 2)
score = score - 1;
end
allScores(n) = score;
n = n + 1;
end
comet(allScores)
  1 Comment
Stephen23
Stephen23 on 11 Mar 2018
Given that before the loop starts the number of iterations is already known, a for loop would be a better choice:
score = 0;
allScores = zeros(99,1);
for n = 1:99
x = randi(2);
if x==1
score = score + 1;
elseif x==2
score = score - 1;
end
allScores(n) = score;
end
comet(allScores)
It would also be easy to remove the if:
score = 0;
allScores = zeros(99,1);
for n = 1:99
score = score + 1 - 2*randi(0:1);
allScores(n) = score;
end
comet(allScores)

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!