MATLAB Answers

surface disappears when zdata is set to 0

13 views (last 30 days)
Peter
Peter on 8 Aug 2012
for some reason i want to set the zdata of a surface plot object to zero, keeping its color, and setting view point to [0 0 1] (looking at it from the top).
code used:
surfobjhandle=surf(X,Y,Z);
colordata=get(surfobjhandle,'cdata');
view([0 0 1]);
set(surfobjhandle,'zdata',zeros(size(get(surfobjhandle,'zdata'))));
set(surfobjhandle,'cdata',colordata);
however, this way the surface is not visible anymore with the viewpoint set to [0 0 1]. it only appears setting a different viewpoint which is not what i want. why is this?

  4 Comments

Show 1 older comment
Friedrich
Friedrich on 29 Aug 2012
Most likely a rendering problem. Try running
opengl neverselect
before running your code. Or manually change the renderer to painters or zbuffer.
Peter
Peter on 29 Aug 2012
i'm puzzled: it's almost 3 weeks after i posted the question and i'm not able to reproduce the problem anymore... the code i posted works just fine now.
Jan
Jan on 29 Aug 2012
@Peter: If you had posted the test data I've asked for, the problem would have been solved faster, perhaps.

Sign in to comment.

Answers (1)

Kevin Moerman
Kevin Moerman on 29 Aug 2012
This example is probably equivalent to what you want:
[X,Y,Z]=peaks(25); figure; surf(X,Y,zeros(size(Z)),Z) ; view(3); axis vis3d;
Perhaps you loose your plot because of axis tight? That sometimes crops too tightly. Also have a look at using the pcolor and imagesc commands instead.
Kevin

  0 Comments

Sign in to comment.