如何绘制双变量正态分布(使用 MATLAB)的标准差等值线,仅显示从 1-σ 到 7-σ 的七个轮廓?
mu=[2 3]; %mean
Sigma=[1 1]; %standard deviation
x1 = -10:.2:10;
x2 = -10:.2:10;
[X1,X2] = meshgrid(x1,x2);
F=mvnpdf([X1(:) X2(:)],mu,Sigma); %compute Gaussian pdf
F=reshape(F,length(x2),length(x1));
contour(x1,x2,F,'ShowText','on'); %Equally spaced contour
我不需要等间距的轮廓,而只需要显示从 1σ 到 7σ 的七个轮廓
https://en.wikipedia.org/wiki/Multivariate_normal_distribution此链接中的图 1 概率密度函数中的绿线(3 西格马椭圆)显示了我想做什么,但我不知道他们是怎么做到的。如何绘制绿线(3-σ)和不同西格玛的类似线。
我想这段代码可以完成这项工作。它基于公差区间
mu = [2 3];
Sigma = [1 1];
x1 = -10:.2:10; x2 = -10:.2:10;
[X1,X2] = meshgrid(x1,x2);
F = mvnpdf([X1(:) X2(:)],mu,Sigma);
F = reshape(F,length(x2),length(x1));
%Values drawn from a normal distribution are
%5-σ,4-σ and 3-σ awayfrom the mean
TL=1-erf([5 4 3]/sqrt(2));
[C,h]=contour(x1,x2,F,TL,'ShowText','on');
但是,我不确定是否可以将此轮廓的标签更改为 5-σ、4-σ 和 3-σ 而不是数字?