在自定义分布后绘制随机数

Mai*_*ani 2 random performance matlab distribution probability

我需要在我选择的分发后绘制随机数.

示例:使用这些概率从1到7绘制7个数字:

  • 1:0.3
  • 2:0.2
  • 3:0.15
  • 4:0.15
  • 5:0.1
  • 6:0.05
  • 7:0.05

因为在我的实际应用中,我需要绘制潜在的1000个数字,我需要这个数字尽可能高效(理想情况下是线性的).我知道MATLAB中有一个函数可以从正态分布中提取随机数; 有没有办法适应它?

Div*_*kar 7

您可以在此处引用的统计工具箱中使用randsample.

%%// Replace 7 with 1000 for original problem
OUT = randsample([1:7], 7, true, [0.3 0.2 0.15 0.15 0.1 0.05 0.05]) 
Run Code Online (Sandbox Code Playgroud)

  • @thewaywewalk这个想法是从自定义分布中以一定概率绘制数字,而不是生成具有特定分布的样本.请注意OP关于从正态分布中绘制的现有函数的注释. (3认同)