从 table 的值制作直方图
Making a histogram out of values from a table
我定义了一个由两个正态分布组成的混合分布,如下所示
MixDist[s_,n_]:=With[{Dist=MixtureDistribution[{.5,.5},{NormalDistribution[0,s],Normaldistribution[0.5s,s]}]},RandomVariate[Dist,n]]
例如,MixDist[1,1000] 应生成 1000 个数字,其分布由 NormalDistribution1[0,1] 和 NormalDistribution2[0.5,1] 组成的混合分布。
现在,我想 运行 这个生成器 100 次,这就是我卡住的地方。
我试过这样做
dist1=Table[MixDist[1,1000],100]
生成具有 100 组 1000 个随机数的 table,但是当尝试使用
绘制直方图时
histogram=Histogram[dist1,20,"ProbabilityDensity"]
显示空白坐标系
来自 table 的数据可以包含在直方图中吗?或者有另一种方法可以做到这一点(从上述混合分布中制作 100 组 1000 个随机生成的数字的直方图)。
谢谢!
简答
mixDist[s_, n_] := With[{
dist = MixtureDistribution[
{.5, .5},
{NormalDistribution[0, s], NormalDistribution[0.5 s, s]}
]
},
RandomVariate[dist, n]
]
dist1 = Table[mixDist[1, 1000], 100];
histogram = Histogram[dist1, 20, "ProbabilityDensity"]
详情
- 唯一的错误是第二个
NormalDistribution
写成了Normaldistribution
- 改进了代码风格。我确信 user-defined 变量应该以小写字母开头,以便与系统变量区分开来。
我定义了一个由两个正态分布组成的混合分布,如下所示
MixDist[s_,n_]:=With[{Dist=MixtureDistribution[{.5,.5},{NormalDistribution[0,s],Normaldistribution[0.5s,s]}]},RandomVariate[Dist,n]]
例如,MixDist[1,1000] 应生成 1000 个数字,其分布由 NormalDistribution1[0,1] 和 NormalDistribution2[0.5,1] 组成的混合分布。 现在,我想 运行 这个生成器 100 次,这就是我卡住的地方。
我试过这样做
dist1=Table[MixDist[1,1000],100]
生成具有 100 组 1000 个随机数的 table,但是当尝试使用
绘制直方图时histogram=Histogram[dist1,20,"ProbabilityDensity"]
显示空白坐标系
来自 table 的数据可以包含在直方图中吗?或者有另一种方法可以做到这一点(从上述混合分布中制作 100 组 1000 个随机生成的数字的直方图)。
谢谢!
简答
mixDist[s_, n_] := With[{
dist = MixtureDistribution[
{.5, .5},
{NormalDistribution[0, s], NormalDistribution[0.5 s, s]}
]
},
RandomVariate[dist, n]
]
dist1 = Table[mixDist[1, 1000], 100];
histogram = Histogram[dist1, 20, "ProbabilityDensity"]
详情
- 唯一的错误是第二个
NormalDistribution
写成了Normaldistribution
- 改进了代码风格。我确信 user-defined 变量应该以小写字母开头,以便与系统变量区分开来。