Hi all, I'm working with the surf(X,Y,Z) function, and trying to force some values to be specific. I'm basically trying to plot a 3D sin-wave, rotationally symmetric about (0,0) and contain a specific number of waves in any direction, then outside this region, force the Z values to zero. Here's code attempts using an 'if' but the Z=0 isn't applied at larger radii than Xmax:
NumberWaves = 2;Each_Division = 0.1;X_max = NumberWaves * (2 * pi) ;X_min = -X_max;Y_min = X_min;Y_max = X_max;[X,Y] = meshgrid(X_min : Each_Division : X_max);Rad = sqrt (X.^2 + Y.^2 );if (Rad < X_max) Z=0;else Z = (((sin(Rad)) + 1) / 2);endfigure;colormap hsv;surf(X,Y,Z, 'EdgeColor' ,'None');xlabel('X (**)');ylabel('Y (**)');zlabel('Red Scale');
Alternatively to the forcing Z to a value, I was trying to find references to only plot the surface out to a given radius, which again would be rotationally symmetric. I'm very new to Matlab, so any help appreciated! Thanks!
Best Answer