我在matlab中有一个表面,使用以下代码绘制:
[xi, yi] = meshgrid(S/K, days);
vq = griddata(S/K, days, rbf/K, xi, yi,'natural');
mesh(xi,yi,vq)
生成的图像非常粗糙,并且有很多网格线,因为每个矢量中大约有200个数据点。是否可以绘制一个网格点数较少的网格点(例如20),它可以平均现有的网格网格,网格数据表面?
答案 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
会使用零填充,会产生一些边缘效应。