如何使用 Julia 中不同数组给出的形状值从伽马分布中采样数组?

问题描述

在 Julia 中,我有一个形状值数组,我想对一个数组进行采样,该数组的值是根据我的形状数组的相应形状元素进行伽马分布的。我想要的是:

    shapes = [1.1,0.5,10]  
    scale = 1  
    x = SampleGammaWithDifferentShapes(shapes,scale)

其中x[1]是从形状=shapes[1]的伽玛分布中采样的,而x[2]是从形状=shape[2]的伽玛分布中采样的,依此类推。

是否有内置函数允许您在一行中执行此操作,还是我必须为此定义自己的函数?这似乎应该是一个内置函数

解决方法

在数组上广播任何函数的可能性使得没有必要添加特殊的数组版本的函数。你能用 1 个值来做吗?然后就广播。

using Distributions

shapes = [1.1,0.5,10.]
scale = 1
x = rand.(Gamma.(shapes,scale))
,

map 函数对此很有用。

using Random,Distributions

shapes = [1.1,10]  
scale = 1
n_samples = 1
x = map(x -> rand(Gamma(x,scale),n_samples)[1],shapes)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...