嗨我有一组数据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)
答案 0 :(得分:1)
我可以尝试使用过滤器对变量A进行卷积(以下是高斯过滤器的示例)。
C = conv2(A,fspecial('gaussian',hsize,sigma)); 在matlab帮助中检查conv2和fspecial