MATLAB绘制二元正态分布

MATLAB绘制二元正态分布

MATLAB自定义函数,用来绘制二元正态分布。

代码如下

function tow_p(a1,a2,b1,b2,p1,xmin,ymin,b )%a1,a2均值,b1,b2方差,p1相关系数,b坐标的长度
x=xmin:0.5:xmin+b;
y=ymin:0.5:ymin+b;
u1 = a1;          %均值
u2 = a2;        
sigma1 = b1;      %方差
sigma2 = b2;
rou = p1;     %相关系数
mu=[-1,2];
[X,Y]=meshgrid(x,y); % 产生网格数据并处理
p = 1/(2*pi*sigma1*sigma2*sqrt(1-rou*rou)).*exp(-1/(2*(1-rou^2)).*[(X-u1).*(X-u1)/(sigma1*sigma1)-2*rou*(X-u1).*(Y-u2)/(sigma1*sigma2)+(Y-u2).*(Y-u2)/(sigma2*sigma2)]);
subplot(1,2,1)
figure(1)
subplot(1,2,1)
mesh(X,Y,p)
subplot(1,2,2)
surf(X,Y,p)
shading interp
colorbar
suptitle('二维正态分布条件概率密度函数曲线');
end

1.输入代码(可以自己调参数:a1,a2均值,b1,b2方差,p1相关系数,b坐标的长度)

tow_p(0,0,20,20,0.5,-20,-20,40)
在这里插入图片描述第一张:利用mesh绘制,步长为0.5.
第二张:利用surf绘制。

发布了7 篇原创文章 · 获赞 3 · 访问量 247

猜你喜欢

转载自blog.csdn.net/weixin_44510920/article/details/103282435
今日推荐