我想生成一个给定概率的随机数,但我不知道如何:
我需要1到3之间的数字
num = ceil(rand*3);
Run Code Online (Sandbox Code Playgroud)
但我需要不同的值来产生不同的生成概率,例如.
0.5 chance of 1
0.1 chance of 2
0.4 chance of 3
Run Code Online (Sandbox Code Playgroud)
我确信这很简单,但我想不出怎么做.
我有一个问题基本上是以下matlab问题的向量化R解决方案:
我能够根据随机统一数和每个单一事件的给定概率生成随机事件结果(总和为100% - 只发生一个事件):
sum(runif(1,0,1) >= cumsum(wdOff))
Run Code Online (Sandbox Code Playgroud)
然而,该函数仅采用单个随机统一数,而我希望它采用随机统一数的向量并输出这些条目的相应事件.
所以基本上我正在寻找在matlab中从Oleg的矢量化解决方案的R解决方案(从评论到matlab解决方案):
"矢量化解决方案:列向量和行向量sum(bsxfun(@ge, r, cumsum([0, prob]),2)在哪里. - Oleg"rprob
如果您需要更多信息,请告诉我.