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

19 views (last 30 days)
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.

Answers (1)

Cris LaPierre
Cris LaPierre on 3 Oct 2020
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

Community Treasure Hunt

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

Start Hunting!