Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Gotthilf Scholz Geändert vor über 11 Jahren
1
Einführung in MATLAB Grundlagen für die Übungen begleitend zur Vorlesung „Neuroinformatik I” Stefan Scherer David Bouchain Institut für Neuroinformatik Fakultät für Ingenieurwissenschaften und Informatik
2
Inhalt Was ist MATLAB? Mit MATLAB arbeiten
Variablen (Vektoren, Matrizen, ...) Flusskontrolle und Funktionen Visualisierung Nützliche Funktionen
3
Was ist MATLAB? MATLAB ist:
eine Entwicklungsumgebung mit eigener Skriptsprache spezialisiert auf numerische Berechnungen insbesondere mit Vektoren und Matrizen versehen mit vielseitigen Visualisierungsmöglichkeiten ausgestattet mit einer sehr umfangreichen Funktionsbibliothek. MATLAB ist nicht: ein CAS (computer algebra system) wie z. B. MAPLE, Mathematica eine allgemeine Programmiersprache wie z. B. C/C++, Java schnell!
4
Mit MATLAB arbeiten MATLAB starten: lokale Installation im SGI-Pool
>> x=[1,2,3] x = >> y=x' y = 1 2 3 >> y*x ans = >> MATLAB starten: lokale Installation leider gibt es keine Lizenzen im SGI im SGI-Pool Linux: matlab aufrufen von einem entfernten Rechner aus im Textmodus via X11 forwarding Anwenden: interaktiv skriptbasiert (.m-Dateien)
5
Das MATLAB-Hauptfenster
6
Das Befehlsfenster
7
Der Editor
8
MATLAB übers Intranet/Internet
ssh Password: matlab Warning: Unable to open display , MATLAB is starting without a display. You will not be able to display graphics on the screen. < M A T L A B > Copyright The MathWorks, Inc. Version (R2006b) August 03, 2006 To get started, type one of these: helpwin, helpdesk, or demo. For product information, visit >> x=[1,2,3] x = >> exit exit ssh -Y
9
Allgemeines Syntaktische Feinheiten: % beginnt Zeilenkommentar
>> x = 5 x = 5 >> y = x; >> y y = >> % y = 6 >> Syntaktische Feinheiten: % beginnt Zeilenkommentar ; unterdrückt Konsolenausgabe gilt für Konsole und Skript!
10
Variablen Variablen müssen nicht deklariert werden! Bezeichner
??? Undefined function or variable 'a'. >> a = 23 a = 23 >> A = 42 A = 42 >> a ~= A ans = 1 >> Variablen Variablen müssen nicht deklariert werden! Bezeichner sind alphanumerisch beginnen mit einem Buchstaben MATLAB ist casesentitiv Definition durch Zuweisung x = [1, 2, 3] s = 'Hello, World!' Operatoren Zuweisung: x = y Arithmetik: +, -, *, /, ^ Vergleich: >, <, >=, <=, ==, ~= Logik: &, |, ~ ungleich NICHT
11
Vektoren Definieren: Zeilenvektor: Spaltenvektor Kommata x = [1, 2, 3]
>> x = 7:10 >> x = 1:2:5 >> y = [1 2 3]' y = 1 2 3 >> Vektoren Kommata Definieren: Zeilenvektor: x = [1, 2, 3] x = [1 2 3] identisch x = 7:11 <von>:<bis> x = 1:1.5:5 <von>:<Schritt>:<bis> Spaltenvektor y = [1; 2; 3] y = [1 2 3]' transponieren Semikola
12
Vektoren (2) Elementzugriff: Beispielvektor x = [1 2 3 4 5]
ans = 1 >> x(end) 5 >> x(end + 1) = 6 x = >> Vektoren (2) Elementzugriff: Beispielvektor x = [ ] erstes Element: 1 x(1) letztes Element: x(5) x(end) x(end+1) = 6 (wachsen) Teilvektor: x(1:2:5) (ungerade Indizes)
13
Vektoren (3) Elementweise Operationen:
>> x = [1 2 3]; y = x'; >> y' ans = >> x + y' >> x .* y' >> x .^ 2 >> Vektoren (3) Elementweise Operationen: Beispielvektoren x = [1 2 3] und y = x' Transponierung: y' Addition: x + y' Multiplikation: x .* y' Potenzierung: x .^ 2 Subtraktion, Division, und Wurzel entsprechend
14
Vektoren (4) Vektorielle Operationen:
>> x = [1 2 3]; y = x'; >> x * y ans = 14 >> y * x >> x(end + 1) = 0; ??? Error using ==> mtimes Inner matrix dimensions must agree. >> Vektorielle Operationen: Beispielvektoren x = [1 2 3] und y = x' Skalarprodukt: x * y Matrixprodukt: y * x Dimensionen müssen passen!
15
Matrizen Definieren: A = [1, 2, 3; 4, 5, 6] Elementzugriff:
>> A(end, end) ans = 6 >> A(2, 1:2) >> A(1, :) >> Definieren: A = [1, 2, 3; 4, 5, 6] Elementzugriff: direkt: A(2,3) letztes Element: A(end,end) Teilmatrix: A(2,1:2)
16
Matrizen (2) Operationen: Beispielmatrix: A = [1, 2, 3; 4, 5, 6]
ans = >> A .* A >> A * A' >> Operationen: Beispielmatrix: A = [1, 2, 3; 4, 5, 6] Transponierung: A' Elementweise Multiplikation: A .* A Matrixmultiplikation: A' * A
17
Flusskontrolle Bedingte Ausführung: if-Bedingung: while-Schleife:
>> x = 1; y = 0; >> if x ~= y 'Foo!' else 'Bar!' end ans = Foo! >> x = 5; >> while x > y x = x - 1; >> x x = >> Bedingte Ausführung: if-Bedingung: if <Bedingung 1> <Anweisung 1> elseif <Bedingung 2> <Anweisung 2> else <Anweisung 3> end while-Schleife: while <Bedingung> <Anweisung>
18
Flusskontrolle (2) Iteratives Ausführen: for-Schleife
>> for x = 1:3 x = x - 2 end x = -1 1 >> for x = 23:42 break; x >> Iteratives Ausführen: for-Schleife for <Laufvariable> = <Zeilenvektor> <Anweisung> end Änderung der Laufvariablen hat keinen Einfluss auf die Anzahl der Iterationen! for- und while-Schleifen können mit break verlassen werden.
19
Funktionen Eingebaute Funktionen eine Unmenge!
>> x = [1 2 3] x = >> y = [ ] y = >> size(x) ans = >> size(y'*x) >> Funktionen Eingebaute Funktionen eine Unmenge! umfangreiche Dokumentation help <Funktion> doc <Funktion> Beispiel: >> help size SIZE Size of array. D = SIZE(X), for M-by-N matrix X, returns the two-element row vector D = [M,N] containing the number of rows and columns in the matrix. For N-D arrays, SIZE(X) returns a 1-by-N vector of dimension lengths. Trailing singleton dimensions are ignored. [M,N] = SIZE(X) for matrix X, returns the number of rows and columns in X as separate output variables. [M1,M2,M3,...,MN] = SIZE(X) for N>1 returns the sizes of the first N
20
Funktionen (2) Benutzerdefinierte Funktionen: .m-Dateien
vorangehender Kommentartext ist Hilfetext Funktionsname ist Dateiname Definition: function <Ergebnis> = <Name> ( <Arg 1>, <Arg2>, ... ) Beispiel: >> help function_example function_example "If the brain were so simple we could understand it, we would be so simple we couldn't."---Lyall Watson >> function_example([1 2], [1; 2]) ans = 5 >> % function_example % % "If the brain were so simple we could % understand it, we would be so % simple we couldn't."---Lyall Watson function result = function_example(x, y) result = x * y;
21
Übungsaufgaben Bitte folgendes Format verwenden:
jede Aufgabe als eigene Funktion eine .m-Datei beilegen, die alle Aufgaben aufruft Beispiel: % a1a % Aufgabe 1a function result = a1a(x, y) result = x + y; % a1b % Aufgabe 1b function result = a1b(x, y) result = x .* y; % Blatt 42 a1a([0,1,2],[1,2,3]) a1b([0,1,2],[3,2,1]) a2([0,1,2]) % a2 % Aufgabe 2 function result = a2(x) result = x * x';
22
Visualisierung Funktionen: plot: zeichnet eine Funktion
subplot(Zeilen, Spalten, Nummer): mehrere Plots in einem Fenster legend: stellt Legende dar (div. Optionen möglich) title: fügt Titel hinzu hold on bzw. off: nötig um mehrere Plots hinzuzufügen … Plotoptionen: plot(x, y, [options]): Linien: ‘-’, ‘--’, ‘:’, ‘-.’ Markierungen: ‘x’, ‘o’, ‘*’, … Farben: ‘r’, ‘b’, ‘g’, ‘c’, ‘y’, … Kombinationen möglich
23
Visualisierung (2) Beispiel: % fermi % Zeichnet eine Fermifunktion
function result = fermi() % Sigmoid: x = -5:0.1:5; y = 1./(1+exp(-x)); % Plotten und nicht schliessen: plot(x,y); hold on; % Ableitung: y = (1./(1 + exp(-x))).*(1 - (1./(1 + exp(-x)))); % Auch plotten: plot(x,y,'r'); % Bild speichern: print -dpng 'fermi.png'
24
Nützliche Funktionen Ein paar hilfreiche Funktionen:
>> x = [ ]; >> find(x >= 0) ans = >> x = ones(3) x = >> x = diag(1:3) >> clear all >> x ??? Undefined function or variable 'x'. >> Nützliche Funktionen Ein paar hilfreiche Funktionen: size: Größe eines Vektors/einer Matrix find: gibt die Elemente zurück, die eine Bedingung erfüllen ones: Matrix der angegebenen Dimension, gefüllt mit Einsen diag: Diagonalmatrix clear all: alle Variablen löschen (jedes Programm damit beginnen!)
25
Bitteschön!
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.