从数组MATLAB Poisson中拉出随机数

问题描述 投票:0回答:1

这在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])

我一直在敲桌子 - 任何帮助都会受到赞赏......

python matlab random poisson
1个回答
1
投票

N = 10;
lambda = [0.1 0.4];
  • 没有循环:来自documentationR = 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
  • 使用arrayfunresult = cell2mat(arrayfun(@(x) poissrnd(x, [N 1]), lambda, 'uniformoutput', false));
© www.soinside.com 2019 - 2024. All rights reserved.