MATLAB: Setting the Z limits of a scatter3 plot

croppingscatter3 plotz limits

Hello,
I have a scatter3 plot of an sphere with its center at (0, 0, 0) and its readius equal to 50. I am showing this in a scatter plot; so the Z limits are from -50 to 50. Now what I want to do is to only show the Z values that are larger than -10 and smaller than 20. I dont want to select these data points in a loop and then replot them. Rather setting the Zlim = ([-10 20]) does the job, but it rescales the entire plot in Z direction (whick makes sense).
Is the any way to keep the original Z limits, ([-50 50]), but only show the data that is above -10 and below 20?
(I hope I was able to explain what my issue is).
Any help is much appreciated.

Best Answer

Run this example
fig = figure;
[X,Y,Z] = sphere(50);
x = 50*X(:);
y = 50*Y(:);
z = 50*Z(:);
z(z>20) = nan;
z(z<-10) = nan;
scatter3(x,y,z, '.')
zlim([-50, 50]);