Professional Documents
Culture Documents
2 30.11.2007
2
Haupt-Arbeitsfenster
3 3
Anzeige-Fenster
M-file Editor/Debugger -
Fenster
Erzeugen und Editieren
von Skripts
4 30.11.2007
4
Hilfe
Hilfe erhalten:
MATLAB main menu
-> Help
-> MATLAB Help
5 30.11.2007
5
Hilfe
Eingabe im “command window”:
help – lists all the help topics
help topic – provides help for the specified topic
help command – provides help for the specified command
helpwin – opens a separate help window for navigation
Lookfor keyword – search all M-files for keyword
6 30.11.2007
6
Befehlseingabe in MATLAB
•Skriptsprache: Eingabe erfolgt durch einen ASCII-Text (sog. .m-File) oder
über die Tastatur direkt im „Command Windows“. Skripte mit
Parameterübergabe heißen Funktionen.
•Befehl wird nach dem Enter -Zeichen sofort ausgeführt.
•Strichpunkt am Ende einer Anweisungsfolge unterdrückt die Ausgabe !
•Durch den Befehl wird das gleichnamige .m-File gestartet, welches
wiederum eine Folge von Befehlen enthält. Also:
7 30.11.2007
7
Dateneingabe über die Tastatur
Eingabe von Skalaren :
>> a=2
a =
2
>> a=sqrt(-16)
a =
0 + 4.0000i
Ein Semikolon (;) unterdrückt die Ausgabe des Ergebnisses:
>> a=1.2345 * 2;
>>
Nachträgliche Abfrage:
>> a
a =
2.46990
>>
8 30.11.2007
8
Dateneingabe über die Tastatur
Eingabe von Vektoren:
>> b=[2,4,6,8]
b =
2 4 6 8
>>
9 30.11.2007
9
Dateneingabe über die Tastatur
Der Doppelpunkt:
>> b=2:2:8
b =
2 4 6 8
>>
11 >> 30.11.2007
11
Teilen von Matrizen; Indices
A= 1 2 3
4 5 6
7 8 0
Lineare Indizierung:
>> A(6) liefert die 8 (spaltenweise Zählung)
Indizierung über Zeile und Spalte:
>> A(2,3) liefert die 6: Name(Zeile, Spalte)
12 30.11.2007
12
Manipulation von Matrizen
Die Änderung von Werten erfolgt durch Zuweisung mit Indices:
>> A(4,4)=28
A =
1 2 3 0
4 5 6 0
7 8 0 0
0 0 0 28
>>
13 30.11.2007
13
Matrizen automatisch erzeugen
Weitere hilfreiche Befehle zum Erzeugen spezieller Matrizen:
zeros Matrix gefüllt mit Nullen
ones Matrix gefüllt mit Einsen
eye Einheitsmatrix
rand Matrix mit zufälligen Elementen
(gleichverteilt in [0,1])
randn Matrix mit zufälligen Elementen
(normalverteilt)
magic Magisches Quadrat
14 30.11.2007
14
Besondere „Variable“
Die folgenden Variablen sind beim Start von Matlab vorhanden,
können aber nachträglich überschrieben werden(!):
pi = 3.14159...,
i,j imaginäre Einheit
inf unendlich
NaN “not a number“
eps Fließkomma-Rechengenauigkeit (IEEE: 2-52)
realmax größte Fließkommazahl (IEEE: 21024 - 1)
realmin kleinste Fließkommazahl (IEEE: 2-1022 )
computer Computertyp und Betriebssystem
15 30.11.2007
15
Der Arbeitsbereich
• Alle unter dem Prompt „>>“ oder in Skripten erzeugten
Variablen liegen im sog. Arbeitsbereich (workspace).
• Funktionen haben ihren eigenen, lokalen Arbeitsbereich.
• Abfrage der im Arbeitsbereich befindlichen Variablen:
>> who
Your variables are:
a b b2 c
>>
16 30.11.2007
16
Arithmetische Ausdrücke
Verknüpfungszeichen für Matrizen:
+ Addition
- Subtraktion
* Matrix-Multiplikation
^ Matrix-Potenzierung
/ Matrix-Division
\ Matrix-Linksdivision
‘ komplex-konjugierte Transposition
Elementweise Verknüpfungen:
.* elementweise Multiplikation
.^ elementweise Potenzierung
./ elementweise Division
17 30.11.2007
17
Arithmetische Ausdrücke
Beispiel:
>> clear
>> x=[-1 0 2]’
x=
-1
0
2
>> A=[1 2 3;4 5 6;7 8 0]
A=
1 2 3
4 5 6
7 8 0
>>
1818 30.11.2007
18
Arithmetische Ausdrücke A= 1
4
2
5
3
6
>> B= A‘ 7 8 0
B=
1 4 7
2 5 8
3 6 0
>> C = A + B
C=
2 6 10
6 10 14
10 14 0
>> D = A * B
D=
14 32 23
32 77 68 Matrixprodukt !!
23 68 113
1919 30.11.2007
19
x = -1
Arithmetische Ausdrücke 0
>> y = x - 1
2
ans = -2
-1
1
>> z = x‘ * y
z4= Skalarprodukt !!
4
>> z1 = x * y‘
z1=
2 1 -1
0 0 0
-4 -2 2
>> z2 = y * x‘
z2=
2 0 -4
1 0 2
2020 -1 0 2 30.11.2007
20
A= 1 2 3
4 5 6
Arithmetische Ausdrücke 7 8 0
x = -1
>> pi * x
0
ans = -3.1416
0 2
6.2832
>> b = A * x
b =
5
8
-7
21
Matrix-„Division“
Es gibt zwei Arten von Matrixdivision in MATLAB:
X = A \ B bedeutet X = inv(A) * B
Hier ist X die Lösung von A * X = B.
Diese „Linksdivision“ ist definiert, wenn A genauso viele Zeilen
hat, wie B. Falls die Matrix A quadratisch ist, wird sie nach dem
Gaußschen Eliminationsverfahren berechnet.
Hat A mehr oder weniger Zeilen als B, dann ist X die Lösung des
über- oder unterbestimmten Gleichungssystems A*X=B im Sinne
kleinster Quadrate.
X = A / B ist definiert durch A/B = (B„\A„)„.
Hier ist X die Lösung von X * A = B.
22 30.11.2007
22
Gleichungsystem
Lösen Sie nun das folgende Gleichungssystem:
1 z1 + 2 z2 + 3 z3 = 5
4 z1 + 5 z2 + 6 z3 = 8
7 z1 + 8 z2 + 0 z3 = - 7
>> A = [1 2 3; 4 5 6; 7 8 0];
>> b = [ 5 8 -7]‘;
>> z = A \ b;
z =
-1
0
2
23 30.11.2007
23
Logische Ausdrücke
Vergleichsoperatoren:
== gleich?
~= nicht gleich?
> größer?
>= größer gleich?
usw.
Logische Verknüpfungen:
& logisches UND
| logisches ODER
~ logisches NICHT
xor logisches EXKLUSIV-ODER
24 30.11.2007
24
A= 1 2 3
4 5 6
Boolesche Variable 7 8 0
25 30.11.2007
25
Diverses - Matrizenmanipulation
Löschen einer Zeile / Spalte A= 1 2 3
4 5 6
>> A(1,:) = [] 7 8 0
A =
4 5 3
7 8 0
>> A(:,2) = []
A =
1 3
4 6
7 0
26
Erstellung von Matlabprogammen
zwei Arten:
Skripte: häufig wiederkehrende Sequenzen
von Matlabkommandos
27
Skripten
Ansammlung von Matlabanweisungen
m-File
Kein „Funktionskopf“
Skripten verwenden denselben „Workspace“ wie
die „Command-Line“
Skripten brauchen keine Übergabeparameter;
sie greifen direkt auf die Variablen im Workspace
zu.
28
Funktionen
Matlab bietet die Möglichkeit umfangreiche
Aufgaben in Unterprogramme aufzuteilen
dazu Definition von Funktionen, die jeweils in
29
Funktionen
• Dateiname testfunktion.m
30
Beispiel: rechnen
Funktionsdefinition
function [ergadd, ergsub, ergmult, ergdiv] = rechnen(a,b)
ergadd = a + b;
ergsub = a - b;
ergmult = a * b;
ergdiv = a / b;
Aufruf
>>[erg1, erg2, erg3, erg4] = rechnen(5,2)
erg1 =
7
erg2 =
3
erg3 =
10
erg4 =
31 2.5000 30.11.2007
31
Fragen?
Uff...
32