从数组MATLAB Poisson中提取随机数

时间:2018-09-17 13:20:37

标签: python matlab random poisson

这过去在MATLAB中很简单,但在Python中仍然很简单。我正在寻找Lambda数组,以生成Poisson分布随机数以插入直方图。

lambda = [0.1 0.4]

我以前可以放在那里:

n = poissrnd(a,10)

并为每个lambda返回10行x 2列的随机生成的Poisson编号的数组(每列代表每个lambda的10个样本)。由于某些原因,这种情况已经改变-我不确定为什么。

在Python中-仅需输入以下内容即可实现

n = np.random.poisson(lambda, [10,2])

我一直把头撞在桌子上-任何帮助将不胜感激...

1 个答案:

答案 0 :(得分:1)

让我们

N = 10;
lambda = [0.1 0.4];
  • 无循环:来自documentation

      

    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));