从有概率的数组中选择随机数

57次观看(过去30天)
玛格丽塔Premoli
玛格丽塔Premoli 2020年2月20日
我有一个数组的三个元素:S=[4 3.9 3.8],我想随机选择这三个数字中的一个。选4的概率是0.5,选3.9的概率是0.4,选3.8的概率是0.1。
谁能帮帮我?
1评论
亚当
亚当 2020年2月20日
在我的头脑和未经验证,因为我的Matlab是繁忙的,我不能打扰启动另一个:
cumsum([0.5 0.4 0.1]);
S(find(rand > cumulativeProbs, 1) - 1);

登录发表评论。

答案(1)

天空缝匠肌
天空缝匠肌 2020年2月20日
你可以查询累积概率:
S = [4, 3.9, 3.8];
W = [0.5, 0.4, 0.1];
W = W /sum(W);确保概率加起来等于1。
Cp = [0, cumsum(w)];
R = rand;
Ind = find(r>cp, 1,)“最后一次”);
结果= S(ind)
4评论
玛格丽塔Premoli
玛格丽塔Premoli 2020年2月21日
很好,现在清楚了!再次感谢:)

登录发表评论。

标签

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!