我有一些从各种发行版中提取的模拟代码。为了便于进行一些健全性检查,有没有办法让Distribution
只返回一个浮点值?这样我就可以测试而无需更改在分发上调用rand
的代码。现在我正在做类似的事情,假设我想要总是得到价值2.2
mydist = Normal(2.2, 0.000001)
但这看起来有点傻。当然,如果我将方差更改为0
,我会收到错误消息。
答案 0 :(得分:3)
Distibutions.jl
个文档有一个extends部分,因此您可以看到需要定义的内容。新的Distribution
启动不完整的实施
using Distributions
struct OneFloatDistribution <: Distribution{Univariate,Continuous}
v::Float64
end
Base.rand(x::OneFloatDistribution) = x.v
您可以使用Uniform(1.0,nextfloat(1.0))