【问题标题】:MATLAB: understanding the role of surfMATLAB:了解 surf 的作用
【发布时间】:2017-06-23 06:53:05
【问题描述】:

我需要一些帮助来了解surf 函数在此 MATLAB 示例代码中的作用。该代码来自多元正态(高斯)分布上的一些online documentation

示例代码:

mu = [0 0];
Sigma = [.25 .3; .3 1];
x1 = -3:.2:3; x2 = -3:.2:3;
[X1,X2] = meshgrid(x1,x2);
F = mvnpdf([X1(:) X2(:)],mu,Sigma);
F = reshape(F,length(x2),length(x1));
surf(x1,x2,F);
caxis([min(F(:))-.5*range(F(:)),max(F(:))]);
axis([-3 3 -3 3 0 .4])
xlabel('x1'); ylabel('x2'); zlabel('Probability Density');

在这里,他们正在创建一个高斯滤波器,F

我不确定这个surf 在多元分布的背景下在数学上说明了什么。这只是显示过滤器F 的样子吗?

【问题讨论】:

  • surf 是绘制由 (x,y,z) 坐标定义的曲面的命令。在此示例代码中,它绘制了多元正态分布的概率密度函数,即值 F 作为 X1X2 的函数,由 mvnpdf 计算。对我来说,高斯滤波器是另外一回事,但也许这就是你所说的......
  • 感谢您的评论,@souty。 “值 F 作为 X1 和 X2 的函数” - 仍然不确定这在数学上意味着什么。这是否好像我将过滤器应用于 X1 和 X2?

标签: matlab gaussian normal-distribution


【解决方案1】:

是的,surf 这里只是显示过滤器的形状。

运行你的代码给我this plot (which I also rotated to view from above):

可以看到正态高斯分布沿两个维度有不同的sigma(并且是旋转的),这是由Sigma决定的。 surf 函数显示过滤器的形状,F。换句话说,就是滤波器在不同 x,y 位置的权重。

要绘制过滤器在不同位置的高度/值,它需要一组 x,y 对,从 X1 和 X2 网格中获取。它没有在网格上运行过滤器。

MATLAB 中的过滤器通常只是一个矩阵,它可以与另一个数据矩阵(例如图像)进行卷积以将过滤器应用于数据。

对于 2D 卷积,请使用 conv2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 2015-11-17
    • 1970-01-01
    • 2014-11-21
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多