【发布时间】:2018-03-13 12:02:27
【问题描述】:
我有以下代码:
nruns=100
nloops=2
zz=zeros(nloops,nruns);
for wLoop=1:nloops
delete(gcp('nocreate'));
parpool(npools);
parfor wRun=1:nruns
zz(wLoop,wRun)=rand
end
end
disp('done')
size(unique(zz))
每次池关闭并重新打开时,种子似乎都会重新初始化为其默认值,因此我得到的不同数字比预期的 nruns*nloops 少得多。 如果我添加
,此行为不会改变rng('shuffle','combRecursive')
在 parfor 内部或之前。 如果我不在每次迭代时都关闭池,则没有问题,但是在每次迭代中使用不同的池对于我所考虑的用法是必要的。 如何在 parfor 循环的每次迭代中获得真正不同的随机数?
【问题讨论】:
标签: matlab random parfor random-seed