matlab - eine einführung · 12 funktionen • man kann eigene funktionen programmieren, die dann...

14
MATLAB – Eine Einführung Samuel Ferraz-Leite Institut für Analysis und Scientific Computing Technische Universität Wien

Upload: others

Post on 08-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

1

MATLAB – Eine Einführung

Samuel Ferraz-LeiteInstitut für Analysis und Scientific Computing

Technische Universität Wien

Page 2: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

2

Christoph ÜberhuberStefan KatzenbeisserDirk Praetorius

MATLAB 7 – Eine EinführungSpringer-Verlag, Wien, 2005

MATLAB-Buch

Page 3: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 4: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 5: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 6: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 7: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 8: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 9: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 10: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 11: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 12: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 13: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

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

Page 14: MATLAB - Eine Einführung · 12 Funktionen • Man kann eigene Funktionen programmieren, die dann aus der Eingabeaufforderung verwendet werden können wie die bereits vorhandenen

14

Danke

für Ihre Aufmerksamkeit!