How to plot a ground surface in 3D using meshgrid?

10 次查看(过去 30 天)
I have been trying to generate a inclined surface in order to use in 3D slope stability calculations. I have an example of surface that I made manually like it is shown below.. However, I woul like to do the same using meshgrid and I could not figure out how. Once I manage to plot it then I will use that surface to locate an ellipsoid in. Thanks in advance.

回答(1 个)

Cris LaPierre
Cris LaPierre 2020-10-3
This is one way. You can use meshgrid to turn vectors into matrices with values repeated in rows and/or columns. However, only Z must be a matrix. X and Y can be vectors. So here I define the slope along X, and then use meshgrid to repeat it for all values of Y. I tried to be tricky with computing the slope but mostly succeeded in making it look more complicated than it needs to be.
x = linspace(-7,9,17);
y = linspace(-4,4,9);
low = 2.6;
high = 3.4;
step = 0.1;
flat = 4;
z = (low-flat*step):step:(high+flat*step);
z(z<low) = low;
z(z>high) = high;
[Z,~] = meshgrid(z,y);
mesh(x,y,Z,'EdgeColor','k')
grid off

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by