matlab如何按⼀定概率取数组中的值
matlab生成随机数我这⾥有⼀个数组[1,2,3,4] ,有⼀个变量A要从这个数组中取值。A取1,2,3,4的概率分别为0.7,0.15,0.1,0.05。我如何按照这样的概率,随机⽣成100个A
思路是:你先产⽣100个随机数,然后看每⼀个随机数到底在哪个范围内(把0到1分为0到0.7、0.7到0.85、0.85到0.95、0.95到1四个区间,每个区间将对应⼀个数),然后给A赋值。
简单版本为:
randsrc(100,1,[1:4; 0.7 0.15 0.1 0.05])
复杂版本为:
A=zeros(1,100);
x=rand(1,100);
A(find(x<0.7))=1;
A(find(x>=0.7))=2;
A(find(x>=0.85))=3;
A(find(x>=0.95))=4;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论