选择一个随机数字概率

475(30天)
阿夫塔布·艾哈迈德·汗”class=
回答: 史蒂文的主 2022年6月16日
大家好,我用这一行代码来生成一个值为1或2相等的概率,但我的问题是,我如何选择与60%概率值是1和2有40%概率值吗?谢谢你!
选择=兰迪(2,1,1);

接受的答案

Torsten”class=
Torsten 2015年2月25日
x =兰德;
如果x < 0.6
选择= 1;
其他的
选择= 2;
结束
最好的祝愿
Torsten。

更多的答案(5)

pankaj辛格”class=
pankaj辛格 2018年3月10日
最简单的方法是使用内置的Matlab函数 “randscr”。
假设您想生成M×N矩阵W, X, Y,和Z概率i, j, k, l,然后使用
= randsrc (M, N, [W X, Y, Z,我,j, k, l]);% + j + k + l = 1;
在你的情况下,你想要生成的单个值,M x N = 1 * 1矩阵;60%概率的值是1(即0.6)和2 40%(即0.4)概率,因此使用这个;
= randsrc (1, 1, (1、2、0.6、0.4));
注意,以上只是一个例子。你可以使用任意数量的值创建任何矩阵大小。概率之和必须等于1。
3评论
乔纳森•福特”class=
乔纳森•福特 2021年7月11日
我不确定是什么引起你的错误,但是你可以尝试编写自己的randsrc函数,是这样的:
函数X = myrandsrc (M, N)
X =重塑((1)和((2:)<兰德(M * N, 1) * 1(1、大小(A, 2)), 2) + 1), M, N);
结束
然后:
X = myrandsrc (4、5、1 2 3 4;0.4 - 0.7 0.9 - 1)
会返回类似:
X =
1 2 3 2 2
2 1 4 3 2
3 2 2 3 2
2 2 2 3 2
请注意,对于这个实现中,您需要使用累积概率分布的第二行,所以使用上面叫你会得到1 ~ 40%,30%,20%的3和4的10%。
下面是函数分离到多个行,更好地解释它是如何工作的:
函数X = myrandsrc (M, N)
%的元素数量可供选择
深圳=大小(2);
%生成一些随机的数字
r =兰德(M * N, 1) *的(深圳);
%确定正确的元素
r =总和((2:)< r, 2) + 1;
%选择正确的元素
X = A (1 r);
%重塑成M x N矩阵
X =重塑(X, M, N);
结束

登录置评。


丹尼尔”class=
丹尼尔 2015年2月25日
您可以使用兰德,均匀分布,如果数量低于0.6或以上。
如果(0.6 < = rand ()) {
选择= 1;
}其他的{
选择= 2;
}
这应该给60/40的机会。有更好的方法,尽管去做。
2的评论
卢西亚诺Anastassiou”class=
卢西亚诺Anastassiou 2019年5月22日
嗨Trung Khoa勒,
“兰德”的直觉只是生成一个随机数在0和1之间。当你用“如果”约束,你告诉系统只给出结果“选择= 1”,随机数是低于0.6。否则它会发出“选择= 2”。
如果你重复这个1000年代的时候,它会发出“选择= 1”60%的时间,因为60%的随机数字0和1之间将低于0.6,另40%的时间它会给“选择= 2”。

登录置评。


乔斯(10584)”class=
乔斯(10584) 2015年2月25日
编辑:乔斯(10584) 2015年2月25日
两个值是简单
VAL = 20 [10]% 2的值
P = 8% probabbility选择的第一个值
Ndraw = 20%的数量了
R =兰特(Ndraw 1) < P
选取=瓦尔(2 - R)%使用VAL的索引
对于更复杂的情况你可能感兴趣的摄入一看我 RANDP 相对概率函数,它会随机值。
1评论
amd jafarzadeh”class=
amd jafarzadeh 2021年1月10日
亲爱的乔斯。
谢谢你很多。它能正常工作。

登录置评。


史蒂文的主”class=
史蒂文的主 2022年6月16日
另一种方法是使用 离散化 函数离散化一个0到1之间的随机数生成的 兰德 函数。因为边缘(0、0.6、1)范围内的任何值均匀(0,- 0.6)将被映射到1 oneOrTwo和制服任何值的范围(0.6,1)将被映射到2。
概率= (0.6 - 0.4);
边缘= cumsum(概率[0])
边缘= 1×3
0 0.6000 1.0000
制服=兰德(1,1 e4);
oneOrTwo =离散化(制服,边);
我们可以检查使用 柱状图 生成的数字有正确的分布(或接近)。
直方图(oneOrTwo“归一化”,“概率”)
%绘制线条时所需的概率
yline(概率,“:”)
那些看起来很好的协议与我期望的概率。

Ka Mirul”class=
Ka Mirul 2017年11月14日
编辑:KSSV 2022年6月16日
我已经创建一个视频在MATLAB生成随机数
希望能帮助你

类别

找到更多的在创建和连接矩阵帮助中心文件交换

社区寻宝

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

开始狩猎!