我可以根据二项式试验中的成功情况绘制概率。我在我的图中得到了预期的Y值,但只有最后的x值,它应该从0到10。 这是我的代码:
close all; clc;
p = 0.2;
figure;
for j = 1:500
for i = 1:10
a = rand();
success = fix(a*10);
y = nchoosek(10,success)*(p^success)*(1-p)^(10-success);
bar(success,y);
hold on;
end
end
答案 0 :(得分:0)
有些事情是错误的,有些是完全错误的。
最大的错误是:每次迭代都会绘制一个条形图。你的代码最终会有50000个条形图一个在另一个上面。您的代码也可以真正矢量化。
Http(s)URLConnection
现在,对于10个不同的p = 0.2;
figure;
% create lots of random numbers
a = rand(10000,1);
success = fix(a*10);
% nchoosek doesnt allow vectors , so lets loop
for ii=1:length(success)
nch=nchoosek(10,success(ii));
end
% compute y
y = nch.*(p.^success).*(1-p).^(10-success);
值,您有很多y
。我的猜测是你想要对与相同success
值相对应的所有值求和。为此,success
函数是在MATLAB中创建的。
accumarray
结果