2017-11-29 6 views
2

私は様々なディストリビューションから得たシミュレーションコードをいくつか持っています。いくつかのサニティチェックを容易にするために、Distributionを1つの浮動小数点値だけを返すようにする方法がありますか?そうすれば、私はrandを配布に呼び出すコードを変更することなくテストできます。今私は、私は常に値2.2Juliaで浮動小数点値を1つだけ返すディストリビューションですか?

mydist = Normal(2.2, 0.000001) 

を取得したい。しかし、これは一種の愚かなようだと仮定、のようなものをやっています。もちろん、分散を0に変更するとエラーが発生します。

答えて

3

Distibutions.jlセクションにはextendsセクションがあり、定義する必要があることが分かります。新しいDistributionの不完全な実装では、あなたがUniform(1.0,nextfloat(1.0))

+0

おかげで二つの可能な浮動小数点数に取り掛かることができます

using Distributions struct OneFloatDistribution <: Distribution{Univariate,Continuous} v::Float64 end Base.rand(x::OneFloatDistribution) = x.v 

を開始します。あなたはこの実装が不完全だと言いますが、それは簡単なテストに基づいているように私のために働くようです...何か私は慎重にすべきですか? –

+0

「Distribution」タイプの機能の使用については、それ以外からのサンプリング以外には注意が必要です。例えば ​​'cdf'と' pdf'は利用できないので、それに依存するものはすべて失敗します。しかし、メソッドエラーを取得する必要がありますので、必要に応じてメソッドを追加してください。 – gggg

+0

よろしくお願いいたします。 –

関連する問題