在MATLAB产生正态(Gauss)分布随机数
Posted Z.Q.Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MATLAB产生正态(Gauss)分布随机数相关的知识,希望对你有一定的参考价值。
文章目录
一、前言
在 MATLAB 中内置了有产生标准正态(Gauss)分布的随机数函数,使用方法如下:
randn(m, n, p)
其中 m、n
为产生矩阵的行数和列数,p
为产生矩阵的个数,产生的矩阵中的每个元素均为服从
N
(
0
,
1
)
N(0, 1)
N(0,1) 的标准正态分布的元素。
二、标准正态(Gauss)分布随机数
使用如下命令产生一个 100x1
的服从标准正态(Gauss)分布
的随机数矩阵:
A = randn(100, 1)
绘制图像效果如下:
可以看到这里随机数服从均值为 0,方差为 1
的标准正态分布。
三、给定均值、方差的正态(Gauss)分布
假设
X
∼
N
(
0
,
1
)
X\\sim N(0,1)
X∼N(0,1),则
3
X
+
3
3X+3
3X+3 服从
N
(
3
,
9
)
N(3,9)
N(3,9) 分布,因此我们要产生服从
N
(
μ
,
σ
2
)
N(\\mu,\\sigma^2)
N(μ,σ2) 的随机数,可以通过如下变换得到:
σ
X
+
μ
∼
N
(
μ
,
σ
2
)
\\sigma X+\\mu \\sim N(\\mu,\\sigma^2)
σX+μ∼N(μ,σ2)
因此我们若想得到服从
N
(
1
,
2
)
N(1,2)
N(1,2) 的正态分布随机数,可以使用如下命令:
A = sqrt(2) * randn(100, 1) + 1
效果图如下:
其他的比如 N ( 2 , 4 ) N(2,4) N(2,4) 的随机数:
A = 2 * randn(100, 1) + 2
大致都能通过如下变换得到,绘制图像的命令如下:
norm = histfit(A,10,'normal')
四、总结
不喜欢写总结。
以上是关于在MATLAB产生正态(Gauss)分布随机数的主要内容,如果未能解决你的问题,请参考以下文章
在matlab中R = random('Normal',0,1,2,4): 生成期望为 0,标准差为 1 的(2 行 4 列)2× 4 个正态随机数