我怎样才能顺利在MATLAB的表面?(How can I smooth a surface in M

2019-10-22 19:49发布

我在MATLAB的表面,其使用以下代码绘制:

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

所得到的图像是相当粗糙,并且有大量的网格线,因为在每个矢量大约200个数据点。 是否有可能绘制,其具有的网格点(例如,20),其平均出一个现有meshgrid,表面的GridData较小数目的网格?

Answer 1:

一种选择是使用conv2vq数据平滑,然后下采样为@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用零垫。



文章来源: How can I smooth a surface in MATLAB?