1

嗨,我有一组数据 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)
4

1 回答 1

1

您可以尝试将变量 A 与滤波器进行卷积(以下是高斯滤波器的示例)。

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

于 2013-03-12T00:21:54.493 回答