% erstellt einen 3D Oberflaechen Plot der Funktion z = f(x,y)

x=linspace(-5,5,50);
y=linspace(-5,5,50);

[xx,yy]=meshgrid(x,y);;
zz=cos(xx).*cos(yy).*exp(-0.2*sqrt(xx.^2+yy.^2));

figure
subplot(2,2,1)
surf(xx,yy,zz);                                   % erstellt einen 3D Oberflaechenplot der Matrix zz
shading faceted                                   % Schattiermodus, faceted ist voreingestellt, zeichnet schwarze Gitterlinien

xlabel('x');
ylabel('y');
zlabel('z');
title('surf(x,y,z), faceted','fontsize',16);


subplot(2,2,2)
surf(xx,yy,zz);
shading interp                                    % kontinuierlicher Farbverlauf der Flaechen

xlabel('x');
ylabel('y');
zlabel('z');
title('surf(x,y,z), interp','fontsize',16);


subplot(2,2,3)
surf(xx,yy,zz);
shading flat                                      % jedes Segment hat eine einheitliche Farbe, keine Gitterlinien

xlabel('x');
ylabel('y');
zlabel('z');
title('surf(x,y,z), flat','fontsize',16);


subplot(2,2,4)
h=surf(xx,yy,zz);
shading interp
set(h,'cdata',rand(size(zz)),'edgecolor','k')     % cdata beinhaltet die Farbinformationen der einzelnen Segmente, 
                                                  % die Farbzuteilung erfolgt zufaellig, die Gitterlinien werden
                                                  % mit 'edgecolor', 'k' auf schwarz gesetzt
                                                  
xlabel('x');
ylabel('y');
zlabel('z');
title('surf(x,y,z), Farben zufällig','fontsize',16);
                                               