我如何绘制完整的x轴而不仅仅是最后一个值

时间:2016-03-24 11:21:10

标签: matlab bar-chart

我可以根据二项式试验中的成功情况绘制概率。我在我的图中得到了预期的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

1 个答案:

答案 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

结果

enter image description here