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 (stefan.scherer@uni-ulm.de) 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 (stefan.scherer@uni-ulm.de) 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 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!


Herunterladen ppt "Einführung in MATLAB Grundlagen für die Übungen begleitend zur Vorlesung „Neuroinformatik I” Stefan Scherer (stefan.scherer@uni-ulm.de) David Bouchain."

Ähnliche Präsentationen


Google-Anzeigen