Matlab平滑3d网格图

时间:2013-03-11 13:05:49

标签: matlab smoothing

嗨我有一组数据A,每个元素对应一个x和y组合。当我使用网格绘制这个数据时,我得到一个上面有很多尖峰的图形。这并不是意料之外的,但我想要一种方法来平滑这些以获得光滑的表面。 我试过使用smooth3命令,但无法弄清楚如何制作合适的输入。 任何帮助,将不胜感激。感谢

这就是我的数据生成方式。

function v = f(x,y) % Not actual function
return x*rand()+y*rand()
end

x = 0.05:0.01:0.95;
y = 0.05:0.01:0.95;

o = zeros(length(x),length(y));
A = zeros(length(x), length(y));
for k = 1:5
    for i = 1:length(x)
        for j = 1:length(y)
            o(i,j) = f([x(i), y(j)]);
        end
    end
    A= A+o;
end
A = A/5;

这就是产生情节的原因。

[X,Y] = meshgrid(x);
mesh(A)

1 个答案:

答案 0 :(得分:1)

我可以尝试使用过滤器对变量A进行卷积(以下是高斯过滤器的示例)。

  

C = conv2(A,fspecial('gaussian',hsize,sigma));   在matlab帮助中检查conv2和fspecial