gpt4 book ai didi

matlab - 在matlab中基于正态分布生成随机数

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:06 29 4
gpt4 key购买 nike

我正在尝试根据我拥有的正态分布特征(均值和标准差)生成一个随机数。我没有统计和机器学习工具箱。

我知道一种方法是随机生成一个从 0 到 1 的随机数 r,然后找到给出该随机数概率的值。我可以通过输入标准正常功能来做到这一点

f= @(y) (1/(1*2.50663))*exp(-((y).^2)/(2*1^2))

并求解

r=integral(f,-Inf,z)

然后使用等式从该 z 值外推到最终答案 X

z=(X-mew)/sigma

但据我所知,没有任何 matlab 命令可以让您求解 x,其中 x 是积分的极限。有没有办法做到这一点,或者有更好的方法来随机生成这个数字?

最佳答案

您可以使用内置的 randn该函数产生从均值为零且标准差为 1 的标准正态分布中提取的随机数。要更改此分布,您可以将 randn 的输出乘以所需的标准差,然后添加您的期望的均值。

% Define the distribution that you'd like to get
mu = 2.5;
sigma = 2.0;

% You can any size matrix of values
sz = [10000 1];

value = (randn(sz) * sigma) + mu;

% mean(value)
% 2.4696
%
% std(value)
% 1.9939

如果你只想从分布中得到一个数字,你可以使用 randn 的无输入版本来产生一个标量

value = (randn * sigma) + mu;

关于matlab - 在matlab中基于正态分布生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40941354/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com