我必须在Matlab中编写一些代码,模拟抛掷硬币150次。我必须计算硬币落在头上的次数,并创建一个矢量,给出头部的运行百分比。
然后我必须制作试验次数,随机“翻转”和头部运行百分比的表格。我假设随机“翻转”意味着该试验的正面或反面。
我还必须创建一个折线图,其中x轴为试验,y轴为概率(百分比)。我假设百分比只是获得头的百分比。
很抱歉,这篇文章很长。我现在提供详细信息将使我更容易看到我试图用代码做什么。我还没有创建表格或情节,因为我甚至不确定如何编码实际问题。
NUM_TRIALS = 150;
trials = 1:NUM_TRIALS;
heads = 0;
t = rand(NUM_TRIALS,1);
percent_h = zeros(size(t));
for i = trials
if (t(i) < 0.5)
heads = heads + 1;
percent_h = heads./trials;
end
end
flips = t;
disp('Number of Trials, Random flips, Heads Percentage')
disp([trials', flips, percent_h'])
plot(trials,percent_h)
title('Trial Number vs. Percent Heads')
xlabel('Trial number')
ylabel('Percent Heads')
答案 0 :(得分:3)
您的代码实际上非常接近回答您的问题,但我看到了一些问题。
t
进行索引。percent_h
也应相应编入索引。这也应该预先分配。z
应代表什么...... plot
即可。 xlabel
将为x轴提供标签,ylabel
为y轴。 title
将给出情节的名称。 i
,而不是试验。所以,你的代码看起来应该是这样的。有很多方法可以简化它,但我会尽可能地保留你的代码。
NUM_TRIALS = 150;
trials = 1:NUM_TRIALS;
heads = 0;
t = rand(NUM_TRIALS,1);
percent_h=zeros(size(t));
for i = trials
if (t(i) < 0.5)
heads = heads + 1;
end
percent_h(i) = heads/i;
end
plot(trials,percent_h)
xlabel('Trial Number')
ylabel('Percent Heads')
title ('Trial Number vs Percent Heads')
答案 1 :(得分:2)