MATLAB: How to plot for this figure

3d

x = -10:1:10;
y = linspace(-10,10);
[X,Y] = meshgrid(x,y);
f = cos(2*pi*X).*cos(2*pi*Y);
surf(X,Y,f)

Best Answer

Define the ‘x’ and ‘y’ vectors differently, then reduce the number of cycles in each direction. The grid lines on the surfaces are more of a callenge.
Experiment with this:
x = linspace(-10,10);
y = linspace(-10,10);
[X,Y] = meshgrid(x,y);
f = cos(2*pi*X/6).*cos(2*pi*Y/6);
surf(X,Y,f, 'EdgeColor','none')
hold on
idxv = 1:4:numel(x); % Index Vector For Grid Lines Plot
surf(X(idxv,idxv), Y(idxv,idxv), f(idxv,idxv), 'FaceAlpha',0, 'LineWidth',1.5)
hold off
.