这在MATLAB中过去很简单,但仍然在Python中。我有一组Lambdas,我希望生成泊松分布随机数插入直方图。
lambda = [0.1 0.4]
我曾经能够放在那里:
n = poissrnd(a,10)
并且为每个lambda返回一组10行乘2列随机生成的泊松数(每列代表来自每个lambda的10个样本)。出于某种原因,这已经改变了 - 我不知道为什么。
在Python中 - 只需输入即可:
n = np.random.poisson(lambda, [10,2])
我一直在敲桌子 - 任何帮助都会受到赞赏......
让
N = 10;
lambda = [0.1 0.4];
R = poissrnd(lambda)
使用平均参数lambda
从泊松分布生成随机数。 lambda
可以是向量,矩阵或多维数组。 R
的大小是lambda
的大小。
所以:
result = poissrnd(repmat(lambda, N, 1));
for
循环:
result = NaN(N, numel(lambda)); % preallocate
for k = 1:numel(lambda)
result(:,k) = poissrnd(lambda(k), [N 1]);
end
arrayfun
:
result = cell2mat(arrayfun(@(x) poissrnd(x, [N 1]), lambda, 'uniformoutput', false));