MATLAB:了解冲浪的作用

MATLAB: understanding the role of surf

我需要一些帮助来理解 surf function in this MATLAB sample code. The code comes from some 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这里只是展示了过滤器的形状

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

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

要在不同位置绘制过滤器的 height/value,它需要一组 x,y 对,它从 X1 和 X2 网格中获取。这不是 运行 网格上的过滤器。

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

对于二维卷积,使用 conv2