【发布时间】:2016-08-30 06:29:20
【问题描述】:
我正在模拟 1,000,000 个重复的 Irwin Hall 分布,每个重复是 100 个均匀随机变量的总和。我创建了这个程序,我认为它是正确的,但是 MATLAB 已经运行了一整夜并且没有完成,所以(显然)出了点问题,但我看不到在哪里。这是我的程序,希望有人能看到这个问题。
n=100; % Nb of samples
N=1000000; %Nb of replicates
for jj=1:N
for ii=1:n
x(ii)=rand();
end
s(jj)=sum(x);
mu=mean(s);
sigma2=var(s);
sigma=std(s);
S(jj)=1-normcdf((70-mu)/sigma);
if mod(jj, 100000)==0
jj
end
end
histogram(S)
【问题讨论】:
-
你部门
/s igma的空间真的存在吗?另外,为什么不只是x = rand(100,1); -
一百万次迭代将需要很多时间!!还可以考虑pre-allocating 用于
x、s、S的内存以节省一些时间! -
/s igma 已更正,但问题仍然存在 :(
-
@Orongo 为什么将我的代码复制到问题本身,却对 Dohyun 的回答发表了评论?请不要复制我的代码,而是在 cmets on my answer 中解释不清楚的地方(因为这是您从那里获得此代码的地方)。我将回滚您所做的编辑,因为我和 Dohyun 的回答对当前问题都没有意义。
标签: performance matlab for-loop