答案 0 :(得分:1)
您可以使用griddata和csaps等功能。他们将一起引导您按照您的意愿顺利完成结果。第一个函数为数据矩阵集添加了额外的点。第二个使结果更平滑。代码示例如下。在该示例中,首先在X方向上进行平滑,然后在Y方向上进行平滑。尝试使用resolution
和smoothing_parameter
(尽管这些参数的当前集合应该没问题。)
x = min_x:step_x:max_x;
y = min_y:step_y:max_y;
resolution = 10;
xg = min_x:(step_x/resolution):max_x;
yg = min_y:(step_y/resolution):max_y;
[X,Y] = meshgrid(x,y);
[XG,YG] = meshgrid(xg,yg);
smoothing_parameter = 0.02;
fitted = griddata(X,Y,Z,XG,YG,'cubic');
fitted_smoothed_x = csaps(xg,fitted,smoothing_parameter,xg);
fitted_smoothed_xy = csaps(yg,fitted_smoothed_x',smoothing_parameter,yg);
surf(XG,YG,fitted_smoothed_xy');
编辑:如果您想获得等高线图,您可以执行以下操作,例如,如下所示。由于我没有真实的数据,我将使用内置函数peaks
来生成一些数据。
[X,Y,Z] = peaks(30);
figure
surfc(X,Y,Z)
view([0 90])
zlim([-10 -8])
在这里,您只需看看上面的轮廓图位于曲面下方。