Vector y seems to change without my modifying it

In this short script I'm trying to simulate three coin flips in a row. The code and output are below.
Notice that in this particular run of the script, vector y comes out to be [1 1 1]. I display each element after each iteration, but after the for loop is completed, when I display vector y, it comes out as [0 0 1].
I've run this script numerous times and the final display statement always comes out different from what is indicated in the element-by-element display.
Have no idea why this is happening.
Thanks, Patrick
%*****************
clear disp('start')
M=3
for i= 1:M
disp(i)
a=rand(1,1)
if a<0.1
y(1,M)=0;
else
y(1,M)=1;
end
disp(y(1,M));
end;
disp(y)
%**************
OUTPUT OF ABOVE SCRIPT
start
M =
3
1
a =
0.7635
1
2
a =
0.6279
1
3
a =
0.7720
1
0 0 1

 Accepted Answer

The problem is in your y assignments:
y(1,M)=0;
and:
y(1,M)=1;
Change the reference to:
y(1,i)=0;
and:
y(1,i)=1;
to see if that produces the result you want.

More Answers (1)

Use the debugger!
Put a break point on the first line of the loop. Run the file and then step through. This will help you see where y changes (or displays) and more importantly help you learn to debug.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!