Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in MATLAB Grundlagen für die Übungen begleitend zur Vorlesung Neuroinformatik I Stefan Scherer David Bouchain

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in MATLAB Grundlagen für die Übungen begleitend zur Vorlesung Neuroinformatik I Stefan Scherer David Bouchain"—  Präsentation transkript:

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 Einführung in MATLAB | Scherer & Bouchain | Seite 2 Inhalt –Was ist MATLAB? –Mit MATLAB arbeiten –Variablen (Vektoren, Matrizen,...) –Flusskontrolle und Funktionen –Visualisierung –Nützliche Funktionen

3 Einführung in MATLAB | Scherer & Bouchain | Seite 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 Einführung in MATLAB | Scherer & Bouchain | Seite 4 Mit MATLAB arbeiten 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) >> x=[1,2,3] x = >> y=x' y = >> y*x ans = >> >> x=[1,2,3] x = >> y=x' y = >> y*x ans = >>

5 Einführung in MATLAB | Scherer & Bouchain | Seite 5 Das MATLAB-Hauptfenster

6 Einführung in MATLAB | Scherer & Bouchain | Seite 6 Das Befehlsfenster

7 Einführung in MATLAB | Scherer & Bouchain | Seite 7 Der Editor

8 Einführung in MATLAB | Scherer & Bouchain | Seite 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. 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 Password: matlab exit 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. 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 Password: matlab exit

9 Einführung in MATLAB | Scherer & Bouchain | Seite 9 Allgemeines Syntaktische Feinheiten: –% beginnt Zeilenkommentar –; unterdrückt Konsolenausgabe –gilt für Konsole und Skript! >> x = 5 x = 5 >> y = x; >> y y = 5 >> % y = 6 >> y y = 5 >> >> x = 5 x = 5 >> y = x; >> y y = 5 >> % y = 6 >> y y = 5 >>

10 Einführung in MATLAB | Scherer & Bouchain | Seite 10 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: &, |, ~ >> a ??? Undefined function or variable 'a'. >> a = 23 a = 23 >> A = 42 A = 42 >> a a = 23 >> a ~= A ans = 1 >> >> a ??? Undefined function or variable 'a'. >> a = 23 a = 23 >> A = 42 A = 42 >> a a = 23 >> a ~= A ans = 1 >> ungleich NICHT

11 Einführung in MATLAB | Scherer & Bouchain | Seite 11 Vektoren Definieren: –Zeilenvektor: x = [1, 2, 3] x = [1 2 3] identisch x = 7:11 : x = 1:1.5:5 : : –Spaltenvektor y = [1; 2; 3] y = [1 2 3] 'transponieren Kommata Semikola >> x = [1, 2, 3] x = >> x = 7:10 x = >> x = 1:2:5 x = >> y = [1 2 3]' y = >> >> x = [1, 2, 3] x = >> x = 7:10 x = >> x = 1:2:5 x = >> y = [1 2 3]' y = >>

12 Einführung in MATLAB | Scherer & Bouchain | Seite 12 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) >> x(1:2:5) >> x(1) ans = 1 >> x(end) ans = 5 >> x(end + 1) = 6 x = >> x(1:2:5) ans = >> >> x(1:2:5) >> x(1) ans = 1 >> x(end) ans = 5 >> x(end + 1) = 6 x = >> x(1:2:5) ans = >>

13 Einführung in MATLAB | Scherer & Bouchain | Seite 13 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 >> x = [1 2 3]; y = x'; >> y' ans = >> x + y' ans = >> x.* y' ans = >> x.^ 2 ans = >> >> x = [1 2 3]; y = x'; >> y' ans = >> x + y' ans = >> x.* y' ans = >> x.^ 2 ans = >>

14 Einführung in MATLAB | Scherer & Bouchain | Seite 14 Vektoren (4) Vektorielle Operationen: Beispielvektoren x = [1 2 3] und y = x' –Skalarprodukt: x * y –Matrixprodukt: y * x –Dimensionen müssen passen! >> x = [1 2 3]; y = x'; >> x * y ans = 14 >> y * x ans = >> x(end + 1) = 0; >> x * y ??? Error using ==> mtimes Inner matrix dimensions must agree. >> >> x = [1 2 3]; y = x'; >> x * y ans = 14 >> y * x ans = >> x(end + 1) = 0; >> x * y ??? Error using ==> mtimes Inner matrix dimensions must agree. >>

15 Einführung in MATLAB | Scherer & Bouchain | Seite 15 Matrizen Definieren: – A = [1, 2, 3; 4, 5, 6] Elementzugriff: –direkt: A(2,3) –letztes Element: A(end,end) –Teilmatrix: A(2,1:2 ) >> A = [1 2 3; 4 5 6] A = >> A(end, end) ans = 6 >> A(2, 1:2) ans = 4 5 >> A(1, :) ans = >> >> A = [1 2 3; 4 5 6] A = >> A(end, end) ans = 6 >> A(2, 1:2) ans = 4 5 >> A(1, :) ans = >>

16 Einführung in MATLAB | Scherer & Bouchain | Seite 16 Matrizen (2) Operationen: Beispielmatrix: A = [1, 2, 3; 4, 5, 6] –Transponierung: A' –Elementweise Multiplikation: A.* A –Matrixmultiplikation: A' * A >> A = [1 2 3; 4 5 6]; >> A' ans = >> A.* A ans = >> A * A' ans = >> >> A = [1 2 3; 4 5 6]; >> A' ans = >> A.* A ans = >> A * A' ans = >>

17 Einführung in MATLAB | Scherer & Bouchain | Seite 17 Flusskontrolle Bedingte Ausführung: –if-Bedingung: if elseif else end –while-Schleife: while end >> x = 1; y = 0; >> if x ~= y 'Foo!' else 'Bar!' end ans = Foo! >> x = 5; >> while x > y x = x - 1; end >> x x = 0 >> >> x = 1; y = 0; >> if x ~= y 'Foo!' else 'Bar!' end ans = Foo! >> x = 5; >> while x > y x = x - 1; end >> x x = 0 >>

18 Einführung in MATLAB | Scherer & Bouchain | Seite 18 Flusskontrolle (2) Iteratives Ausführen: –for-Schleife for = end Änderung der Laufvariablen hat keinen Einfluss auf die Anzahl der Iterationen! –for- und while-Schleifen können mit break verlassen werden. >> for x = 1:3 x = x - 2 end x = x = 0 x = 1 >> for x = 23:42 break; x end >> >> for x = 1:3 x = x - 2 end x = x = 0 x = 1 >> for x = 23:42 break; x end >>

19 Einführung in MATLAB | Scherer & Bouchain | Seite 19 Funktionen Eingebaute Funktionen –eine Unmenge! –umfangreiche Dokumentation help doc –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 >> 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 >> x = [1 2 3] x = >> y = [ ] y = >> size(x) ans = 1 3 >> size(y'*x) ans = 4 3 >> >> x = [1 2 3] x = >> y = [ ] y = >> size(x) ans = 1 3 >> size(y'*x) ans = 4 3 >>

20 Einführung in MATLAB | Scherer & Bouchain | Seite 20 Funktionen (2) Benutzerdefinierte Funktionen: –.m -Dateien –vorangehender Kommentartext ist Hilfetext –Funktionsname ist Dateiname –Definition: function = (,,... ) –Beispiel: % 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; % 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; >> 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 >> >> 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 >>

21 Einführung in MATLAB | Scherer & Bouchain | Seite 21 Übungsaufgaben Bitte folgendes Format verwenden: –jede Aufgabe als eigene Funktion –eine.m -Datei beilegen, die alle Aufgaben aufruft –Beispiel: % Blatt 42 a1a([0,1,2],[1,2,3]) a1b([0,1,2],[3,2,1]) a2([0,1,2]) % 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'; % a2 % Aufgabe 2 function result = a2(x) result = x * x'; % a1a % Aufgabe 1a function result = a1a(x, y) result = x + y; % a1a % Aufgabe 1a function result = a1a(x, y) result = x + y; % a1b % Aufgabe 1b function result = a1b(x, y) result = x.* y; % a1b % Aufgabe 1b function result = a1b(x, y) result = x.* y;

22 Einführung in MATLAB | Scherer & Bouchain | Seite 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 Einführung in MATLAB | Scherer & Bouchain | Seite 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' % 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 Einführung in MATLAB | Scherer & Bouchain | Seite 24 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!) >> x = [ ]; >> find(x >= 0) ans = 2 5 >> x = ones(3) x = >> x = diag(1:3) x = >> clear all >> x ??? Undefined function or variable 'x'. >> >> x = [ ]; >> find(x >= 0) ans = 2 5 >> x = ones(3) x = >> x = diag(1:3) x = >> clear all >> x ??? Undefined function or variable 'x'. >>

25 Einführung in MATLAB | Scherer & Bouchain | Seite 25 Bitteschön!


Herunterladen ppt "Einführung in MATLAB Grundlagen für die Übungen begleitend zur Vorlesung Neuroinformatik I Stefan Scherer David Bouchain"

Ähnliche Präsentationen


Google-Anzeigen