我知道我可以通过以下方式在 MATLAB 中创建 3D 曲面图:
x = linspace(1,10,100);
y = linspace(10,20,100);
[X Y] = meshgrid(x,y);
Z = X * Y;
surf(X,Y,Z);
但这要求生成的高度图的所有节点都排成一行。我有一组具有任意点 (x,y) 和高度 (z) 的数据。是否有一种简单的方法来绘制一个图形,该图形将以类似于 surf
的方式在点之间生成一个表面?
最佳答案
抱歉,经过一番搜寻,我设法回答了我自己的问题:
您可以使用trisurf
函数:
tri = delaunay(x,y);
trisurf(tri,x,y,z);
如果你有密集的数据,你会想要做shading interp
(或其他值,检查doc shading
)这样你就不会因为网格。
关于matlab - 如何在 MATLAB 中使用不规则间隔的数据制作冲浪图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2848015/