我知道我可以通过以下方式在MATLAB中创建3D曲面图:
x = linspace(1,10,100);
y = linspace(10,20,100);
[X Y] = meshgrid(x,y);
Z = X * Y;
surf(X,Y,Z);
Run Code Online (Sandbox Code Playgroud)
但这需要生成高度图的所有节点对齐.我有一组数据,它们有任意点(x,y)和高度(z).是否有一种简单的方法来绘制图形,以类似的方式在点之间生成表面surf?
经过一番狩猎后,我设法回答了我自己的问题:
你可以使用这个trisurf功能:
tri = delaunay(x,y);
trisurf(tri,x,y,z);
Run Code Online (Sandbox Code Playgroud)
如果你有想要做的密集数据shading interp(或其他值,请检查doc shading),这样你就不会因网格而得到黑色斑点.