【发布时间】:2016-04-07 08:02:05
【问题描述】:
【问题讨论】:
-
你的 X Y 和 Z 是多少?如果我们有您尝试绘制的数据的示例,它会更有帮助:)
-
这是一列数据。它们太大而无法附加:( Z 是点 (X,Y) 的强度
标签: matlab matlab-figure
【问题讨论】:
标签: matlab matlab-figure
您可以使用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])
在这里,您只需从表面下方的上方查看等高线图。
【讨论】: