我正在编写一个代表硬币翻转100次的脚本,我想绘制这100个试验进展时“头”的出现百分比。我似乎无法得到绘图显示头部/试验数量与试验1到100的关系图。该图显示了x轴上100点处的所有头部/试验。
这是我正在使用的代码:
counter=0
wins=0
for k=1:100
x=rand
counter=counter+1
if (x<0.5)
x_coin=0
else
x_coin=1
wins=wins+1
end
B(k)=counter
C(k)=wins
fraction=C.*(1./B)
plot(k,fraction)
end
答案 0 :(得分:7)
无需循环播放。刚
> n= 100;
> trials= 1: n;
> x= rand(1, n);
> C= cumsum(x< .5);
> plot(trials, C./ trials)
答案 1 :(得分:2)
首先,您需要在向量B
和C
中存储所需的数据,因此没有理由在循环中调用绘图命令。完成循环后,只需制作一个图。
其次,当你调用PLOT时,你将循环变量k
作为第一个参数传递,并且它在循环结束时只有一个值为100。这就是为什么fraction
中的所有点都被绘制为x值为100的原因。
要获得您想要的情节,只需在循环之后执行:
plot(B,C./B);
或者,您不必存储向量B
。您可以在循环后执行此操作:
B = 1:100;
plot(B,C./B);