如何在MATLAB中平滑曲面?

时间:2015-04-25 11:35:18

标签: matlab matlab-figure surface

我在matlab中有一个表面,使用以下代码绘制:

[xi, yi] = meshgrid(S/K, days);
vq = griddata(S/K, days, rbf/K, xi, yi,'natural');
mesh(xi,yi,vq)

生成的图像非常粗糙,并且有很多网格线,因为每个矢量中大约有200个数据点。是否可以绘制一个网格点数较少的网格点(例如20),它可以平均现有的网格网格,网格数据表面?

1 个答案:

答案 0 :(得分:2)

一种选择是使用conv2数据上的vq进行平滑,然后按照@Ander的建议进行缩减采样:

n = 5; % averaging size
vq_2 = conv2(vq, ones(n)/n.^2,'same');
mesh(xi(1:20:end,1:20,end),yi(1:20:end,1:20,end),vq_2(1:20:end,1:20,end))

默认情况下,conv2会使用零填充,会产生一些边缘效应。