How to plot only certain values in a surface plot?

I am plotting the following surface:
[X,Y] = meshgrid(-5:.2:5);
Z = -0.15*sin(X).*(X) + 0.2*(Y.^2) +3 ;
surf(X,Y,Z)
I do not want values of Z > 4 to appear on my surface plot.
How could I achieve this?
Many thanks in advance

 Réponse acceptée

Two options:
1. Set Z > 4 to NaN:
[X,Y] = meshgrid(-5:.2:5);
Z = -0.15*sin(X).*(X) + 0.2*(Y.^2) +3 ;
Z(Z>4) = NaN;
figure
surf(X,Y,Z)
2. Use a zlim cutoff:
[X,Y] = meshgrid(-5:.2:5);
Z = -0.15*sin(X).*(X) + 0.2*(Y.^2) +3 ;
figure
surf(X,Y,Z)
zlim([min(zlim) 4])
There may also be other possibiloities.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by