【发布时间】:2012-05-25 00:45:22
【问题描述】:
如何在 matlab 中创建高斯分布的等高线图?
【问题讨论】:
标签: normal-distribution matlab
如何在 matlab 中创建高斯分布的等高线图?
【问题讨论】:
标签: normal-distribution matlab
具有对称 sigma 且中心位于 (0,0) 的简单案例:
sigma = 5; % just an example value
n = 3*sigma; % cutoff point
x = -n:n;
G = 1 / (sigma * sqrt(2 * pi)) * exp(-x.^2 / (2*sigma^2)); % 1D Gaussian
G2 = G' * G; % 2D
contour(G2); % make contour plot
或者在一般情况下,在任何地方都有一个中心,不同的 sigma x 和 sigma y 以及旋转 theta:
center = [1 3]; % again, example values
sigma = [4 2];
theta = pi/3;
R = max(sigma(:))*4;
[xgrid, ygrid] = meshgrid( center(1)-R: center(1)+R,...
center(2)-R: center(2)+R);
x = (((xgrid-center(1))*cos(theta) - (ygrid-center(2))*sin(theta))/sigma(1)).^2;
y = (((xgrid-center(1))*sin(theta) - (ygrid-center(2))*cos(theta))/sigma(2)).^2;
G = exp(-(x+y)/2);
contour( xgrid, ygrid, G)
【讨论】:
online documentation 拥有您所需的一切。查看“函数的等高线图”部分
有示例代码,以及各种标记轮廓、平滑轮廓等的方法。
【讨论】: