<<

. 2
( 11 .)



>>

™groesser als 5™
end
end
input(™Druecke RETURN™);

Man kann auch einen Block fur den Fall, dass die Aussage falsch ist, angeben.
¨
Dazu dient ™else™

for i=1:10
i
if i>5
Einfuhrung in Matlab 11
¨




™groesser als 5™
else
™kleiner oder gleich 5™
end
end
input(™Druecke RETURN™);

Tatsachlich kann man eine ganze Menge verschiedener F¨lle abarbeiten
a
¨

for i=1:10
i
if i>5
™groesser als 5™
elseif i==5
™gleich 5™
else
™kleiner als 5™
end
end

Beachte: Um auf Gleichheit zu testen, muss man ™==™ schreiben. Das einfache
Gleichheitszeichen ™=™ bedeutet Zuweisung
Die ™while™ Schleife erm¨glicht es, eine oder mehrere Operationen so oft aus-
o
zufuhren, bis die Bedingung am Anfang der Schleife nicht mehr erfullt ist. Der
¨ ¨
mehrfach auszufuhrende Block von Operationen wird mit ™end™ beendet.
¨
Beispiel: Verdoppeln einer Zahl bis eine Obergrenze erreicht ist:

i=1
while i<1000
i = i*2
end
input(™Druecke RETURN™);

Manchmal muss man eine Bedingung jeweils nach Ablauf des Anweisungsblocks
testen, z.B. weil die zu uberpufende Gr¨ße erst in dem Block berechnet wird. In
o
¨ ¨
diesem Fall muss man sich mit einem Trick behelfen.
Beispiel: Division einer Zahl, bis die Di¬erenz zum vorherigen Ergebnis kleiner
als eine vorgegebene Schranke ist

i = 1000
diff = 10
while diff > 5
12 Einfuhrung in Matlab
¨




i_alt = i;
i = i/3
diff = abs(i - i_alt)
end
input(™Druecke RETURN™);

Eine andere Art, diese Schleife zu programmieren, bietet die ™break™ Anweisung.
Diese bewirkt, dass die Ausfuhrung der Schleife auf der Stelle abgebrochen wird.
¨
Eine Anwendung macht daher nur in einer ™if™ Anweisung Sinn.

i = 1000
while 1==1
i_alt = i;
i = i/3
diff = abs(i - i_alt)
if diff <= 5
break
end
end
input(™Druecke RETURN™);

Hier haben wir in der ™while™ Anweisung eine Bedingung eingesetzt, die immer
wahr ist. Die Schleife kann also nur durch die ™break™ Anweisung verlassen werden.
Selbstverst¨ndlich kann es sinnvoll sein, mehrere Kriterien an den Abbruch der
a
Schleife zu stellen.
Die ™break™ Anweisung kann auch in der ™for™ Schleife eingesetzt werden.

for i=1:10
i
j = i^2;
if j>50
break
end
j
end
input(™Druecke RETURN™);

Bei verschachtelten Schleifen beendet ™break™ nur die innerste Schleife:

for i=1:10
for j=1:i
if j>5
Einfuhrung in Matlab 13
¨




break
end
j
end
end
Noch ein Nachtrag zu den logischen Aussagen, wie sie in der ™while™ oder ™if™
Anweisung auftreten: Wir hatten bereits erw¨hnt, dass Gleichheit mittels ™==™
a
getestet wird. Ungleichheit wird mit ™ =™ getestet, und kleiner gleich bzw. gr¨ßer
o
gleich mit ™¡=™ bzw. ™¿=™


1.3 Plotten von Daten und Funktionen
1.3.1 Grundlagen
Beispiel 1: Plotten von Daten
Wir de¬nieren einen kleinen Datensatz mittels zweier Vektoren:
t = [1; 2; 3; 4; 5]
m = [0.9; 3.8; 7.9; 15; 26.7]
Mit der ™plot™ Anweisung kann man nun die Daten gegeneinander gra¬sch dar-
stellen
plot(t,m,™.™)
input(™Druecke RETURN™);
Statt dem Punkt ™.™ kann man auch viele andere Symbole verwenden, z.B. ein
Kreuz ™x™:
plot(t,m,™x™)
input(™Druecke RETURN™);
Beispiel 2: Plotten von Funktionen
Funktionswerte, die gra¬sch dargestellt werden sollen, mussen in einen Vektor
¨
umgewandelt werden. Dazu de¬niert man zun¨chst einen Vektor mit den Stutz-
a ¨
stellen, an denen die Funktion ausgewertet werden soll, hier das Intervall von 1
bis 5 mit einem Abstand von 0.1 zwischen je zwei Stutzstellen
¨
tt = [1:0.1:5];
Dann weist man einem weiteren Vektor die Werte der Funktion (hier f (t) = t2 )
zu. Beachte den ™.™ vor dem mathematischen Operator, der bewirkt, dass die
Operation komponentenweise im Vektor tt ausgefuhrt wird.
¨
14 Einfuhrung in Matlab
¨




y = tt.^2;

Jetzt k¨nnen wir plotten. Der Strich ™-™ bewirkt, dass der Graph als Linie darge-
o
stellt wird

plot(tt,y,™-™)
input(™Druecke RETURN™);

Beispiel 3: Gemeinsames Plotten von Daten und Funktionen
Hierzu ist nichts weiter zun tun, als die einzelnen Argumente nacheinander in
den plot Befehl zu schreiben

plot(t,m,™x™,tt,y,™-™)

1.3.2 Erweiterte Grundlagen
Das elementare Plotten von Funktionen haben wir bereits kennen gelernt. In die-
sem M-File wollen wir einige weitere M¨glichkeiten von MATLAB ausprobieren.
o
Zun¨chst wollen wir eine M¨glichkeit kennen lernen, um verschiedene mit
a o
™plot™ erzeugt Gra¬ken in ein Bild zu zeichnen. Wir bereiten dazu zun¨chst zwei
a
Funktionen zum Plotten vor.

t=[0:0.01:2*pi];
x=sin(t).*cos(2.*t).^2;
y=cos(t).*sin(2.*t).^2;

Wenn wir nun zuerst

plot(t,x,™r-™)
input(™Druecke RETURN™)

und dann

plot(t,y,™g-™)
input(™Druecke RETURN™)

aufrufen, l¨scht die zweite Gra¬k die erste.
o
Nebenbemerkung: Mit den Buchstaben vor der Formatanweisung wahlt man
¨
Farben aus. Zum Beispiel stehen zur Verfugung:
¨
k = schwarz (blacK)
w = weiss (White); (auf weissem Hintergrund sinnlos :-) )
r = rot (Red)
g = grun (Green)
¨
b = blau (Blue)
Einfuhrung in Matlab 15
¨




y = gelb (Yellow)
m = magenta (wie die TelekoM)
c = turkis (Cyan)
¨

Um dieses Loschen zu vermeiden dient die Anweisung ™hold on™: Die bereits
¨
dargestellte Gra¬k wird gehalten.

plot(t,x,™r-™)
hold on
input(™Druecke RETURN™)
plot(t,y,™g-™)
input(™Druecke RETURN™)

Der ™hold on™ Befehl wirkt bereits auf die letzte dargestellte Gra¬k (falls vorhan-
den). Um den normalen Losch-Modus wieder einzuschalten, dient ™hold o¬™
¨

hold off
plot(t,y,™g-™)
input(™Druecke RETURN™)

Es kann auch sinnvoll sein, verschiedene Gra¬ken gleichzeitig in verschiedenen
Fenstern auszugeben. Mit der ™¬gure™ Anweisung erzeugt man weitere Gra¬kfen-
ster. Die ™plot™ Anweisung wirkt immer auf das letzte ge¨¬nete Fenster.
o

figure
input(™Druecke RETURN™)
plot(t,x,™r-™)

Alternativ kann man weitere Gra¬k-Fenster auch aus dem Menu eines bereits
ge¨¬neten Gra¬k-Fensters ¨¬nen.
o o
Als nachstes wollen wir 2d Kurven plotten. Mathematisch ist 2d Kurve eine
¨
Funktion von R nach R2 . In MATLAB kann man diese als vektorwertige Funktion
oder einfach mittels zweier reellwertiger Funktionen darstellen. In diesem Sinne
bilden die zwei oben de¬nierten Funktionen bereits eine Kurve. Das Argument
einer Kurve wird oft mit ™t™ bezeichnet.
Wenn man Kurven gra¬sch darstellen m¨chte, gibt es im Wesentlichen zwei
o
M¨glichkeiten: Entweder man stellt sie - so wie oben - koordinatenweise in Anh¨ngig-

<<

. 2
( 11 .)



>>