【Matlab】正态分布常用函数normpdf_normcdf_norminv_normrnd_normfit

1.normpdf

功能:正态分布概率密度函数

用法

1
2
3
Y = normpdf(X,mu,sigma)
Y = normpdf(X) % (mu = 0, sigma = 1)
Y = normpdf(X,mu) % (sigma = 1)

例子

1
2
3
4
5
6
% code1
% 画标准正态分布概率密度函数
x = -10:0.01:10;
y = normpdf(x, 0, 1);
plot(x,y);
grid on;

结果:

code1

自己写一个正态分布概率密度函数

1
2
3
4
5
6
7
8
9
10
11
12
% code2
% 画正态分布概率密度函数
% 写成了函数
function [] = normal_distribution()
x = -10:0.01:10;
y = fx(x, 0, 1); % 自写函数
plot(x,y);
grid on;
% 概率密度函数
function f = fx(x, miu, sig)
f = (sqrt(2*pi)*sig).^(-1) * exp(-(x-miu).^2/(2*sig*sig));

结果:

code2

2.normcdf

功能:正态分布函数

用法

1
2
p = normcdf(x) % 标准正态分布
p = normcdf(x,mu,sigma)

例子

1
2
3
4
5
6
% code3
% 画正态分布函数
x = -10:0.01:10;
y = normcdf(x, 0, 1);
plot(x,y);
grid on;

结果:

code3

3.norminv

功能:正态分布分位数

用法

1
X = norminv(P,mu,sigma)

例子

分位数的意思就是,如有:
$$
P{X \geq x{\alpha} } = \alpha
$$
则称$x
{\alpha}$为$X$的上侧$\alpha$分位数。

1
norminv(1-0.05,0,1)

结果:1.6449

4.normrnd

功能:生成正态随机数

用法:

1
2
R = normrnd(mu,sigma) % 生成一个数
R = normrnd(mu,sigma,m,n,...) % 生成m*n列向量

例子:

1
2
3
4
5
6
7
8
9
10
>> normrnd(0,1)
ans =
1.4122
>> normrnd(0,1,5,3)
ans =
0.0226 0.9199 -0.7777
-0.0479 0.1498 0.5667
1.7013 1.4049 -1.3826
-0.5097 1.0341 0.2445
-0.0029 0.2916 0.8084

5.normfit

功能:正态分布参数估计

用法

1
2
3
[muhat,sigmahat] = normfit(data) % 点估计mu和sigma
[muhat,sigmahat,muci,sigmaci] = normfit(data) % 区间估计,默认置信度95%
[muhat,sigmahat,muci,sigmaci] = normfit(data,alpha) % 置信度100(1 - alpha) %

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
>> r=normrnd(0,1,100,2); % 生成100*2和标准正态分布
>> [muhat,sigmahat] = normfit(r) % 点估计mu和sigma
muhat =
-0.1214 -0.1076
sigmahat =
0.9723 1.0072
>> [muhat,sigmahat,muci,sigmaci] = normfit(r) % 区间估计,默认置信度95%
muhat = % 点估计
-0.1214 -0.1076
sigmahat =
0.9723 1.0072
muci =
-0.3143 -0.3074
0.0715 0.0923
sigmaci = % 区间估计
0.8537 0.8843
1.1295 1.1701
>> [muhat,sigmahat,muci,sigmaci] = normfit(r,0.05) % 置信度100(1 - alpha) %
muhat = % 点估计
-0.1214 -0.1076
sigmahat =
0.9723 1.0072
muci = % 区间估计
-0.3143 -0.3074
0.0715 0.0923
sigmaci =
0.8537 0.8843
1.1295 1.1701