<<

. 3
( 11 .)



>>

o a
keit von t dar (entweder mit zwei plot Anweisungen und ™hold on™, oder in einer
plot Anweisung):

plot(t,x,™r-™,t,y,™g-™)
input(™Druecke RETURN™)
16 Einfuhrung in Matlab
¨




Meistens jedoch ist man an einer Darstellung der Kurve in der (x,y)-Ebene inter-
essiert. Hierbei bleibt das Argment ™t™ in der Gra¬k unsichtbar; man verliert also
die Information uber die Abh¨ngigkeit von ™t™, sieht dafur aber den Zusammen-
a
¨ ¨
hang zwischen ™x™ und ™y™. In MATLAB geht dies ganz einfach, indem man den
Vektor ™x™ gegen den Vektor ™y™ plottet.

plot(x,y,™b-™)
input(™Druecke RETURN™)

(Diese spezielle Kurve ist ubrigens eine sogenannte ™Lissajou-Kurve™)
¨
Zum Abschluss wollen wir noch einige M¨glichkeiten erl¨utern, mit denen man
o a
Gra¬ken sch¨ner gestalten kann.
o
Angabe eines Titels:

title(™Eine Lissajou-Kurve™, ™FontSize™, 16)
input(™Druecke RETURN™)

Beschriftung der Achsen:

xlabel(™x=sin(t)cos(2t)^2™)
ylabel(™y=cos(t)sin(2t)^2™);
input(™Druecke RETURN™)

Eine Legende hinzufugen
¨

legend(™Beispielkurve™)
input(™Druecke RETURN™)

Texte an beliebigen Stellen im Bild anbringen

text(-1,-0.1,™\uparrow Hier ist ein Knick™, ™FontSize™, 12)
text(0.2,0.6,™\leftarrow Hier ist die Kurve glatt™, ™FontSize™, 12)
input(™Druecke RETURN™)

Achtung: MATLAB kann nur einen Teil der LaTeX-Symbole darstellen. Taucht
in einer Anweisung ein unbekanntes Symbol auf, so werden alle Symbole in dieser
Anweisung ignoriert!
Schliesslich kann man Text in der Gra¬k noch mit der Maus positionieren,
was zum Beispiel sinnvoll ist, wenn man die Gra¬k danach abspeichern oder
ausdrucken will. Dies geht mit

gtext(™Ein Text mit der Maus™)

Nach der Anweisung kann man den Text mit der Maus im Bild einfugen.
¨
Einfuhrung in Matlab 17
¨




1.3.3 3D Gra¬k
Nachfolgend werden verschiedene Moglichkeiten zur Erzeugung von dreidimen-
¨
sionaler Gra¬k vorgestellt.
Wir haben zuvor bereits das Plotten von zweidimensionalen Kurven betrach-
tet; als erste 3d Anwendung erweitern wir dies auf dreidimensionale Kurven. Wir
betrachten die Kurve t ’ (sin(t), cos(t), t) fur t ∈ [0, 10π]
¨

t = [0:pi/50:10*pi];
x = sin(t);
y = cos(t);
z = t;

Ganz analog zum ™plot™ Befehl funktioniert der ™plot3™-Befehl:

plot3(x,y,z,™r-™)
input(™Druecke RETURN™)

Wir konnen erzwingen, dass das Koordinatensystem mit gleichen Kantenlangen
¨ ¨
dargestellt wird

axis square;
input(™Druecke RETURN™)

und wir k¨nnen ein Gitter einblenden, das die 3d Sicht der Kurve erleichtert
o

grid on;
input(™Druecke RETURN™)

Eine weitere wichtige Anwendung dreidimensionaler Gra¬k ist die Darstellung von
Fl¨chen im R3 . Solche Fl¨chen k¨nnen uber eine Funktion f : R2 ’ R de¬niert
a a o ¨
werden. Hier betrachten wir als Beispiel die Funktion f (x, y]) = 1 ’ (x, y) 2
Analog zur ublichen Darstellung eindimensionaler Funktionen muss man die
¨
zur Darstellung verwendeten Punkte de¬nieren. Statt eines Vektors braucht man
jetzt aber eine Matrix von Punkten, die das darzustellende Gebiet abdecken.
Genauer brauchen wir zwei Matrizen: Eine fur die x-Komponenten der Punkte
¨
und eine fur die y-Komponenten.
¨
Diese k¨nnen e¬zient mit der ™meshgrid™-Anweisung erzeugt werden.
o

[X,Y] = meshgrid(-8:.5:8,-8:.5:8);

Dann werten wir die Funktion aus und speichern die Punkte in Z

Z = 1-(X.^2+Y.^2);
18 Einfuhrung in Matlab
¨




und stellen das Ganze mit ™mesh™ dar.

mesh(X,Y,Z);
input(™Druecke RETURN™)

Falls gewunscht, konnen die verdeckten Linien sichtbar gemacht werden
¨ ¨

hidden off;
input(™Druecke RETURN™)

Statt als Gitter kann die Funktion als Flache dargestellt werden. Dazu benutzt
¨
man den ™surf™-Befehl.

surf(X,Y,Z);
input(™Druecke RETURN™)

Die Farben werden dabei standardm¨ssig durch die Z-Werte de¬niert. Man kann
a
aber auch eine weitere Matrix von der Gr¨sse der Z-Matrix als viertes Argument
o
ubergeben, wobei dann diese als Farbwert benutzt wird.
¨
Als Beispiel verwenden wir die Norm der Ableitung Df der Funktion f, die
gegeben ist durch Df (x, y) = ’2(x, y)

C = 2.*sqrt(X.^2 + Y.^2);
surf(X,Y,Z,C);
input(™Druecke RETURN™)

Die Verteilung der Farben wird durch das Farbschema (™colormap™) gesteuert.
Man kann sich die Verteilung als Farbbalken anzeigen lassen.

colorbar
input(™Druecke RETURN™)

MATLAB stelle verschiedene Standard-Farbschemen zur Verfugung, z.B. hsv,
¨
hot, cool, summer, gray (siehe ™help graph3d™ fur eine vollst¨ndige Liste, Vor-
a
¨
einstellung ist ™jet™). Bei der Auswahl eines Farbschemas kann als optionaler Pa-
rameter die Anzahl der verwendeten Farben ubergeben werden, z.B. ™hot(10)™.
¨
Voreinstellung ist ™64™.

colormap(hot);
input(™Druecke RETURN™)
colormap(jet);

Funktionen von R2 nach R kann man auch als H¨henlienien darstellen Wir de¬-
o
nieren dazu zun¨chst eine etwas interessantere Funktion
a
Einfuhrung in Matlab 19
¨




Z2 = sin(X./2) + sin(Y./3);
surf(X,Y,Z2);
input(™Druecke RETURN™)

Mit ™contour™ kann man die Hohenlienien plotten. Der vierte Parameter gibt die
¨
Anzahl der dargestellten Niveaus an

contour(X,Y,Z2,20);
input(™Druecke RETURN™)

Alternativ kann man die H¨henlienien auch dreidimensional plotten.
o

contour3(X,Y,Z2,20);
input(™Druecke RETURN™)

Zuruck zu den 2d H¨henlinien Hier kann man die H¨henlienien wie folgt beschrif-
o o
¨
ten

[L,h] = contour(X,Y,Z2,20);
clabel(L,h);
input(™Druecke RETURN™)

Alternativ kann man die Funktionswerte auch mit Farben kennzeichnen

contourf(X,Y,Z2,20);
colorbar;
input(™Druecke RETURN™)

Schliesslich kann man auch nur eine einzelne Hohenlinie darstellen, indem man
¨
als viertes Argument einen 2d Vektor mit 2 mal diesem Wert ubergibt.
¨

contour(X,Y,Z2,[0.5 0.5]);
input(™Druecke RETURN™)

Wir kommen nun zuruck zu den Fl¨chendarstellungen und betrachten wieder
a
¨
unsere erste Beispielfunktion

surf(X,Y,Z,C);
colormap(hot);
input(™Druecke RETURN™)

Wir wollen nun Lichte¬ekte hinzufugen. Um diese e¬ektiv einzusetzen, emp¬ehlt
¨
es sich, die Ober¬‚¨cheneigenschaften unserer Fl¨che zuerst geeignet anzupassen.
a a
Dazu kann man mit dem ™¬ndobj™-Befehl eine Datenstruktur (hier ™h™) anlegen,
in der diese Eigenschaften festgelegt sind.
20 Einfuhrung in Matlab
¨




h = findobj(™Type™,™surface™);

Diese Datenstruktur ™h™ kann mit Hilfe des ™set™-Befehls ver¨ndert werden. Wir
a
a
¨ndern zun¨chst die Farben der Kanten (™Edges™) und Facetten (™Faces™) so, dass
a
ein kontinuierliches Farbverlauf erreicht wird.

set(h,™EdgeColor™,™interp™);
set(h,™FaceColor™,™interp™);
input(™Druecke RETURN™);

Mit der ™light™-Anweisung konnen wir nun Lichtquellen platzieren.
¨

light(™Position™,[ 1 3 2]);
light(™Position™,[-3 -1 3]);
input(™Druecke RETURN™)

Jetzt ist das Gitter wieder sichtbar; der Grund liegt darin, dass die Voreinstellung

<<

. 3
( 11 .)



>>