我有一个包含3列x,y,z的数据文件 我想做一个3D图来可视化表面。
我本来可以使用meshgrid,但问题是我只有那些y< = x的数据。有办法吗?
一个例子:
x y z ============ 1 1 0.5 2 1 0.3 2 2 1.2 3 1 1.1 3 2 8.0 3 3 1.4 ============
答案 0 :(得分:7)
在许多情况下,一个简单的解决方案是使用trisurf。例如......
x = [1, 2, 2, 3, 3, 3];
y = [1, 1, 2, 1, 2, 3];
z = [0.5, 0.3, 1.2, 1.1, 1.8, 1.4];
tri = delaunay(x,y);
trisurf(tri,x,y,z)
答案 1 :(得分:5)
您可以确定性地填充缺失的值,只是一个包含x
和y
两个嵌套循环的小脚本。
否则再看一下MATLAB文档中的函数meshgrid。在那里,您会看到See Also
部分。不小心在那里列出了一个函数griddata。这就是你需要的!我还可以推荐更好的gridfit。
答案 2 :(得分:0)
您可以通过您拥有的点拟合曲面,然后绘制曲面图。我喜欢使用x2fx函数生成完整的二次模型,然后使用\运算符将数据拟合到模型中。你对你想要绘制的曲面的基本性质有什么了解吗?您的数据是否有很多噪音? 8.0看起来有点不合适,是异常还是正确的数据?