【问题标题】:Creating the contour plot of a gaussian distribution创建高斯分布的等高线图
【发布时间】:2012-05-25 00:45:22
【问题描述】:

如何在 matlab 中创建高斯分布的等高线图?

【问题讨论】:

    标签: normal-distribution matlab


    【解决方案1】:

    具有对称 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)
    

    【讨论】:

    • SO的语法高亮在这里关闭,最后一行当然不是注释。
    • 你有没有假设这两个变量在二维高斯的情况下是独立且不相关的?
    • @user31820:好点,是的,我做到了。如果这不行,您需要更改 G 的计算。
    • @user31820:我刚刚更新了我的答案以允许相关变量
    • @Junuxx:点击this link 下载用户脚本,该脚本将在 SO 上进行 Matlab 语法高亮显示
    【解决方案2】:

    online documentation 拥有您所需的一切。查看“函数的等高线图”部分

    有示例代码,以及各种标记轮廓、平滑轮廓等的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      相关资源
      最近更新 更多