如何在Matlab中从数据文件中绘制3D表面

时间:2010-12-23 06:30:33

标签: matlab

我有一个包含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
============

3 个答案:

答案 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)

alt text

答案 1 :(得分:5)

您可以确定性地填充缺失的值,只是一个包含xy两个嵌套循环的小脚本。

否则再看一下MATLAB文档中的函数meshgrid。在那里,您会看到See Also部分。不小心在那里列出了一个函数griddata。这就是你需要的!我还可以推荐更好的gridfit

答案 2 :(得分:0)

您可以通过您拥有的点拟合曲面,然后绘制曲面图。我喜欢使用x2fx函数生成完整的二次模型,然后使用\运算符将数据拟合到模型中。你对你想要绘制的曲面的基本性质有什么了解吗?您的数据是否有很多噪音? 8.0看起来有点不合适,是异常还是正确的数据?