[英]how do you generate random numbers from a bimodal Gaussian Probability Density Function in MATLAB?
[英]How do I generate a random vector (0,1) with a known probability in MATLAB
我使用以下代码
operation=[rand(1,noOfNodes)>prob];
生成1和0( noOfNodes
次)。 如果我使用prob=0.2
并尝试100个值,则在某些情况下存在40个零。 这不奇怪吗?
我需要获得小于0.2的零的概率
不,那不奇怪。 这是你的概率。
如果你翻硬币100次,你不会总是得到50个头和50个尾巴。 有时你得到49和51,在最稀有的场合,你甚至可以得到相同的100次。
使用上面的代码,当noOfNodes
为100时,你不能保证总是得到20个零和80个。如果你想生成一个总是有20%零的向量,但是随机排列的零和1,你就可以完成这个使用RANDPERM功能如下:
operation = [zeros(1,20) ones(1,80)]; %# Fill the vector with 0 and 1
operation = operation(randperm(100)); %# Randomly reorder it
如果要生成具有0%到20%零的向量,可以使用函数RANDI修改上面的代码:
operation = [randi([0 1],1,20) ones(1,80)];
operation = operation(randperm(100));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.