如何用matlab绘制二维正态概率密度和条件概率密度曲线
时间: 2024-03-15 20:45:31 浏览: 217
要绘制二维正态概率密度和条件概率密度曲线,可以使用MATLAB中的normpdf和mvnpdf函数。这里提供一个简单的示例代码:
```matlab
% 生成二维正态分布随机数
mu = [0 0]; % 均值
sigma = [1 0.5; 0.5 2]; % 方差协方差矩阵
rng(1); % 设置随机数种子
r = mvnrnd(mu, sigma, 1000); % 生成1000个样本
% 绘制二维正态概率密度曲线
x = linspace(-3, 3, 100);
y = linspace(-3, 3, 100);
[X,Y] = meshgrid(x,y);
Z = mvnpdf([X(:) Y(:)], mu, sigma);
Z = reshape(Z,length(y),length(x));
figure;
surf(X,Y,Z);
% 绘制条件概率密度曲线
y1 = -2;
x1 = linspace(-3, 3, 100);
Z1 = normpdf(x1, mu(1) + sigma(1,2)/sigma(2,2)*(y1-mu(2)), sqrt(sigma(1,1)-sigma(1,2)/sigma(2,2)*sigma(2,1)));
figure;
plot(x1, Z1);
```
在这个示例代码中,首先使用mvnrnd函数生成了1000个符合二维正态分布的随机数。然后使用meshgrid函数生成x和y的网格矩阵,计算二维正态概率密度函数的值,并使用surf函数绘制出概率密度曲面。接着,定义了一个条件概率密度的函数,并使用normpdf函数计算出在给定y1的条件下的概率密度函数的值,并使用plot函数绘制出曲线。
阅读全文