点云的等高线图

计算科学 matlab 绘图
2021-12-10 10:46:46

我有一团散布在矩形中的点,这些点中有一些数据,有点像这样

x(:)=[x(1),x(2),...,x(N)]y(:)=[y(1),y(2),...,y(N)]u(:)=[u(1),u(2),...,u(N)]
在这里,我正在寻找绘制的轮廓umatlab上的数据。我在matlab上尝试了几个函数;轮廓,轮廓f,轮廓c,...等,但徒劳无功。

请提供任何帮助

2个回答

我所知道的可视化此类数据的唯一方法是首先对其进行三角测量。Matlab 可以做三角测量。参见 Matlab 函数“delaunay”、“trisurf”、“pdecont”。如果域是凸的,则此方法有效。如果不是,那么您需要通过考虑域边界来构建三角剖分。也许Matlab有方法可以做到这一点,我对Matlab不是很熟悉。您可能还想查看 Shewchuk 的 Triangle 程序https://www.cs.cmu.edu/~quake/triangle.html,这可能对非凸域有所帮助。

另请参阅这篇文章: 在 MATLAB 中从数据集中绘制曲面

本质上,您要做的是对数据进行插值:您想要找到一个函数U(x,y)以便U(xi,yi)=ui. 这就是您想要绘制等高线的函数。

您应该查看有关数值方法的书籍并搜索“二维插值”。您会发现的方法之一是对您的点进行三角测量(xi,yi)形成一个网格,然后您可以在其上定义U(x,y)作为分段线性函数。但我认为更好的方法——除非你的数据分布相当均匀——是使用径向基函数(RBF)方法。