【问题标题】:Smooth Contour Plot in matlabmatlab中的平滑等高线图
【发布时间】:2016-04-07 08:02:05
【问题描述】:

我想从 X Y Z 矩阵绘制平滑等高线图。

sf = fit([X Y] Z, 'poly23');
plot(sf);

我没有足够的平滑曲线.. 我需要的?

【问题讨论】:

  • 你的 X Y 和 Z 是多少?如果我们有您尝试绘制的数据的示例,它会更有帮助:)
  • 这是一列数据。它们太大而无法附加:( Z 是点 (X,Y) 的强度

标签: matlab matlab-figure


【解决方案1】:

您可以使用griddatacsaps等功能。他们将共同引导您达到您希望的顺利结果。第一个函数将附加点添加到您的数据矩阵集。第二个使结果更平滑。代码示例如下。在示例中,首先在 X 方向进行平滑处理,然后在 Y 方向进行。尝试使用resolutionsmoothing_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])

在这里,您只需从表面下方的上方查看等高线图。

【讨论】:

  • 谢谢! hp=surfc(...);set(hp(2), 'ShowText', 'on')
  • 但我需要等高线图。
  • 如何将 csap 应用于等高线图?
  • 检查我答案中的“编辑”部分。
  • 光滑的表面有时没有光滑的轮廓。
猜你喜欢
  • 2017-12-02
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 2023-03-22
  • 2011-12-24
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
相关资源
最近更新 更多