Matlab中使用分布的随机数

Matlab中使用分布的随机数,matlab,random,distribution,probability,gaussian,Matlab,Random,Distribution,Probability,Gaussian,我需要创建一个函数,该函数返回一个长度为n的向量,其值范围为0到1(或类似值,.01到.99也可以),该向量遵循一个具有指定平均mu和sd的正态分布。也就是说,向量中约68%的值落在用户指定平均值的±1 s.d.范围内。因此,函数的输入为n,mu,s.d.,并返回一个向量 非常感谢您的帮助。谢谢使用randn: v = randn(1,n)*sd+mu; 该函数将返回一个1×n矩阵,其中包含从标准正态分布中提取的伪随机值 通过将其乘以sd并加上mu,将得到一组正态分布的数字,平均值mu和标准偏

我需要创建一个函数,该函数返回一个长度为n的向量,其值范围为0到1(或类似值,.01到.99也可以),该向量遵循一个具有指定平均mu和sd的正态分布。也就是说,向量中约68%的值落在用户指定平均值的±1 s.d.范围内。因此,函数的输入为n,mu,s.d.,并返回一个向量


非常感谢您的帮助。谢谢

使用
randn

v = randn(1,n)*sd+mu;
该函数将返回一个1×n矩阵,其中包含从标准正态分布中提取的伪随机值


通过将其乘以sd并加上mu,将得到一组正态分布的数字,平均值
mu
和标准偏差
sd

,也许我误解了你的要求,你不想要随机数,但正态分布曲线的计算值介于0和1之间

高斯方程或正态分布为:

x = (1:n)/n;
y = 1/(sigma*sqrt(2*pi)).*exp(-((x-mu).^2)/(2*sigma^2));

因为你想要一个长度为n的向量,所以x也应该是这个长度。因此,您可以如上所述(从1/n开始,以1结束)。然后计算这些值的正态分布。

+1另请参见
normrnd
(统计工具箱),它基本上调用
randn
,谢谢,但我没有统计工具箱(或者我不知道如何启动它)。您使用的代码不适合0到1的数字范围(例如:hist(randn(1500)*2+.5);),我正在尝试避免使用黑匣子。这是我现在拥有的几乎可以工作的代码,但问题是我无法为linspace找到合适的边界<代码>xsigma=1;xmu=.5*6*xsigma;x=linspace(0,6*xsigma,1000);y=(xsigma*sqrt(2*pi))^-1*exp(-(x-xmu)。^2)/(2*xsigma^2));图(x/(6*xsigma),y)