在MATLAB中如何生成已知均值和方差的服从拉普拉斯分布的随机数呢?

1个回答

  • 百度一下和容易得到拉普拉斯分布的性质

    其中mu就是均值,而b是标准差除以根号2

    逆累计分布函数

    我们利用matlab的rand函数很容易生成(0,1)区间内均匀分布的随机数列将(0,1)区间内均匀分布的随机数列当成是变量p,代入你累积分布函数就可以得到符合拉普拉斯分布的随机数列.

    mu=0; %均值sigma=1; %标准差,方差的开平方b=sigma/sqrt(2); %根据标准差求相应的ba=rand(1,10000)-0.5; %生成(-0.5,0.5)区间内均匀分布的随机数列 (一万个数的行向量);x=mu-b*sign(a).*log(1-2*abs(a)); %生成符合拉普拉斯分布的随机数列

    我们可以用

    mean(x)std(x)

    验证,均值应该接近0,标准应该接近1hist(x,100);还可以画出x的分布图是符合均值为0,标准为1的拉普拉斯分布的