如何在MATLAB中使用不规则间隔的数据制作冲浪图?

JP.*_*JP. 7 3d matlab plot

我知道我可以通过以下方式在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

JP.*_*JP. 9

经过一番狩猎后,我设法回答了我自己的问题:

你可以使用这个trisurf功能:

tri = delaunay(x,y);
trisurf(tri,x,y,z);
Run Code Online (Sandbox Code Playgroud)

如果你有想要做的密集数据shading interp(或其他值,请检查doc shading),这样你就不会因网格而得到黑色斑点.

  • 实际上,避免黑色blob的最好方法是将属性`edgeColor`设置为`none`. (2认同)