gpt4 book ai didi

matlab - 具有 3 个向量的曲面图 Matlab

转载 作者:行者123 更新时间:2023-12-02 01:08:17 25 4
gpt4 key购买 nike

我需要能够使用来自 3 个向量的数据绘制曲面图。我找到了类似的信息,但似乎没有方法适用于我的数据。我的 X 和 Y 列间隔均匀,但不是按升序排列。我尝试了不同的方法,但它们似乎都没有给我想要的东西,这是一个将近点连接在一起的简单曲面。我尝试了以下方法:

[X Y]=meshgrid(x,y);
Z=griddata(x,y,z, X,Y);
surf(X,Y,Z);

这不是我想要的,因为它在 z=0 处创建了一个曲面,并使它看起来更像是一个体积图,而不仅仅是一个曲面。它在我的电脑上运行也很慢(可能是因为创建了所有的网格点)。如果我能得到不需要那么多内存的东西,那将是理想的(我的向量每个都有大约 20k 个值),但这不是必需的。

***编辑:我还尝试使用找到的 scatteredInterpolant 方法 here , 但该函数似乎无法被 MATLAB 识别,我收到此错误:

Undefined function 'scatteredInterpolant' for input arguments of type 'double'.

这也是我的问题的图片: here

你可以看到我们看不到表面之下,有一些 z=0 平面挡住了它。

如果您有任何帮助,我们将不胜感激。

提前致谢。

**编辑 2:我添加了示例 vectors ,它们是我从左到右的 x、y 和 z 值。

***编辑 3:这是我得到的三角测量图像。如您所见,有些点由于某种原因被忽略了,这就产生了那些看起来又长又奇怪的蓝色三角形。

迈克

最佳答案

由于常规方法似乎失败了,我建议您手动进行。

  1. 创建 Z矩阵满NaN值。矩阵的大小应取决于您的 xy值(value)观。
  2. 遍历所有发生的x , y ,配对并把他们的(平均?)z值在您的 Z 的正确位置矩阵。
  3. 遍历所有NaN值并插入它们的值。也许使用 filter2 .
  4. 使用surf绘制生成的表面

关于matlab - 具有 3 个向量的曲面图 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com