matlab - eine einführung · 12 funktionen • man kann eigene funktionen programmieren, die dann...
TRANSCRIPT
1
MATLAB – Eine Einführung
Samuel Ferraz-LeiteInstitut für Analysis und Scientific Computing
Technische Universität Wien
2
Christoph ÜberhuberStefan KatzenbeisserDirk Praetorius
MATLAB 7 – Eine EinführungSpringer-Verlag, Wien, 2005
MATLAB-Buch
3
Deklarationen
• Jede Variable muss einen eindeutigen Namen haben (höchstens 31 Zeichen lang, weitere Zeichen werden ignoriert)
• Name muss mit einem Buchstaben anfangen und darf aus Groß – und Kleinbuchstaben (keine Landesspezifischen Zeichen), Zahlen und Unterstrichen bestehen.
• ACHTUNG! Matlab ist Casesensitiv!
Beispiele:
gültige Namen: A, a, Affe, A_f_f_e, a3Djsu__s
ungültige Namen: 3a, a.f.f.e, eine-variable
4
Deklarationen
• Variablen werden vor der ersten Verwendung nicht deklariert.
• Durch die erste Wertzuweisung an eine Variable werden der Datentyp und der nötige Speicherplatz bereitgestellt.
• Double-Variablen sind immer als dynamische Matrizen zu verstehen. Bei entsprechender Zuweisung wird das Feld gegebenenfalls vergrößert.
• Löschen einer Variable mit clear variable
• Ermitteln der im Workspace vorhandenen Variablen mit who bzw. whos
Beispiele:names_and_deklarations.m
5
Arithmetik• Wie in C ist das einfach Gleichheitszeichen „=„ der
Zuweisungsoperator.
• Operationen auf einfachen double-Variablen siehe Tabelle.
• Operationen hoher Priorität, werden zu erst durchgeführt.
• Bei gleicher Priorität erfolgt Auswertung von links nach rechts.
Beispiele:
double_arithemtik.m
1a-b-
1a+b+
2a/b/
2a*b*
3-a-
4a^b^
PrioritätOperationOperator
6
Arithmetik• Arithmetik auch für Felder definiert
• Elementweise Operationen auf double-Feldern siehe Tabelle.
• Operationen hoher Priorität, werden zu erst durchgeführt.
• Bei gleicher Priorität erfolgt Auswertung von links nach rechts.
• Weiters ist * ohne führenden Punkt die Matrix-Matrix-Multiplikation.
Beispiele:
vector_arithemtik.m
1a-b-
1a+b+
2a./b./
2a.*b.*
3a.^b.^
PrioritätOperationOperator
7
Logische Operatoren• Ähnlich wie in C aber in Matlab ~= für ungleich.
• Operatoren können auf double-Variablen oder double-Felder angewandt werden. Ergebnis ist ein logical, bzw. ein Feld von logicals mit Werten true oder false.
• Mit any und all kann ein Feld von logicals mit oder bzw. und zu einem einzigen logical reduziert werden.
Beispiele:
logical_operators.m
ungleich~=
gleich==
größer, größer od. gleich>,>=
Kleiner oder gleich<=
kleiner als<
BedeutungOperator
8
Verzweigungen
• Einfache Verzweigung if
• Syntax:
if bedingung anweisungelseif bedingung anweisungelse anweisungend
• else und elseif sind optional. Beliebig viele elseif.Achtung! end ist notwendig.
Beispiele:if_else.m
9
Verzweigungen
• Auswahlanweisung switch
• Syntax:
switch case-ausdruck case fall 1 anweisung 1 case fall 2 anweisung 2 otherwise anweisungend
• Beliebig viele Fälle erlaubt. otherwise ist optional.
Beispiele:switch.m
10
Zählschleifen
• Zählschleife in Matlab ist die for-Schleife
• Syntax:
for schleifensteuerung anweisungsblockend
• Schleifensteuerung hat die Gestaltvariable=anfangswert : schrittweite : zielgröße
• Schachtelung möglich. Achtung! for-Schleife iteriert über einen Vektor, das heißt: Beeinflussen der Zählvariable nicht möglich.
Beispiele:for_demo.m
11
Bedingungsschleifen
• Bedingungsschleife in Matlab ist die while-Schleife
• Syntax:
while bedingung anweisungsblockend
• Es gibt keine Fußgesteuerte Bedingungsschleife in Matlab, nur die Kopfgesteuerte.
• Man kann die aktuelle Schleife (for oder while) mit break verlassen!
Beispiele:while_demo.m
12
Funktionen
• Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen Matlab-eigenen Funktionen.
• Solche Funktionen müssen in einem *.m-File abgelegt sein, dass gleich heißen sollte wie die Funktion.
• Syntax:
function [Rückgabewerte]=Name(Parameter)anweisungen
• Ergebnis ist das, was am ende der Funktion in den gemäß Rückgabewerte benannten Variablen steht.
Beispiele:hoch_drei.m
13
Funktionen
• Mehrere Funktionen in einer Datei erlaubt. Die erste Funktion ist dann die, die ausgeführt wird.
• Kommentare unmittelbar nach der Deklaration der Funktion werden (bis zur ersten Leerzeile) als Online-Hilfe angezeigt.
• Natürlich ist Rekursion möglich.
• Funktionen können mit end beendet werden, müssen aber nicht. In einer Datei muss die Syntax einheitlich sein.
Beispiele:mehrere_funktionen.m
14
Danke
für Ihre Aufmerksamkeit!