当前位置: 首页 > 知识库问答 >
问题:

从截断正态分布绘制伪随机

鲜于念
2023-03-14
x = 0.5 + 0.1*randn() 

从平均值0.5和标准差0.1的正态分布中得出伪随机数。

既然如此,下面的Matlab代码是否等价于从一个在0处截断的正态分布在1处进行采样?

    while x <=0 || x > 1

    x = 0.5 + 0.1*randn();

    end

共有1个答案

萧星火
2023-03-14

使用MATLAB的概率分布对象使得从截断分布中进行采样变得非常容易。

您可以使用makedist()truncate()函数定义对象,然后修改(截断它)为random()函数准备对象,该函数允许从它生成随机变量。

% MATLAB R2017a
pd = makedist('Normal',0.5,0.1)     % Normal(mu,sigma)
pdt = truncate(pd,0,1)              % truncated to interval (0,1)
sample = random(pdt,numRows,numCols)  % Sample from distribution `pdt`

一旦创建了对象(这里是pdt,即pd的截断版本),您就可以在各种函数调用中使用它。

figure, hold on
h = histogram(cr,'Normalization','pdf','DisplayName','@Luis Mendo samples');
X = 0:.01:1;
p = plot(X,pdf(pdt,X),'b-','DisplayName','Theoretical (w/ truncation)');
 类似资料:
  • 我想生成一个截断的正态分布,其中任何一个R中都有已知的参数。注意,我不是在寻找伪随机数生成器。 假设I有一个均值为5,标准差为1的正态分布。我能画出一个截断正态分布的值吗,在点1和点10截断?

  • 我试着增加平局的数量--仍然导致sd在96左右。

  • 本文向大家介绍基于JavaScript伪随机正态分布代码实例,包括了基于JavaScript伪随机正态分布代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了基于JavaScript伪随机正态分布代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在游戏开发中经常遇到随机奖励的情况,一般会采取先生成数组,再一个一个取的方式发随

  • 我将需要初始化一个'n'数量的类,将有一个随机值附加到他们从1到100。 我知道如何创建一个介于1和100之间的随机值,但我如何使所有的值都落在一个正态分布模式?

  • 例如,随机函数产生120个数字(0或1),这些相加值的平均值必须接近60。

  • 问题内容: 我正在尝试构造一个正则表达式(用于Java)以截断小数点后的零。例如 50.000→50 50.500→50.5 50.0500→50.05 -5→-5 50→50 5.5→5.5 想法是以最紧凑的形式表示实数(或整数)。 这是我构造的: 我用来捕获截断的数字字符串。 上面的模式的问题是50被截断为5。我需要某种方式来表示必须遵循(小数点)。 我尝试过使用负数落后,但没有任何匹配。 问