我试图在Matlab中模拟车辆到达交叉口的到达过程。车辆随Poisson分布随机生成。
让我们说,在一个分数中,每小时有600辆车的交通流强度。根据我从理论上的理解,泊松分布的λ应为600/3600(1小时内3600秒)。然后我运行这个循环:
for i = 1:3600
vehicle(i) = poissrnd(600/3600);
end
有一个问题:当我计算数组vehicle
中的“1”时,从不会有600个,它总是一些数字,如567,595等等。
问题是,我做错了,即lambda会不同吗?或者这是正常的,数字永远不会相等?
答案 0 :(得分:3)
如果生成随机数,则可以预期输出。
如果你真的知道输出它就不再是随机的了。
因此你没有做错任何事。
你可以让你的代码更优雅。
考虑这种矢量化方法:
vehicle = poissrnd(600/3600,3600,1)
如果您始终希望数字相同(例如重现结果),请尝试设置随机生成器的状态。
如果您有现代版本(没有旧代码),您可以这样做:
rng(983722)