einf hrung in matlab

Einfhrung in MATLAB Sebastian Zambanini Computer Vision Lab - PowerPoint PPT Presentation

Einfhrung in Visual Computing Einfhrung in MATLAB Sebastian Zambanini Computer Vision Lab Institut f. Rechnergesttzte Automation TU Wien berblick Allgemeines Arbeiten mit MATLAB Dateneingabe Vektoren und Matrizen


  1. Einführung in Visual Computing Einführung in MATLAB Sebastian Zambanini Computer Vision Lab Institut f. Rechnergestützte Automation TU Wien

  2. Überblick  Allgemeines  Arbeiten mit MATLAB  Dateneingabe  Vektoren und Matrizen  Programme schreiben in MATLAB  Visualisierung/Bilder  Häufige Probleme, Tipps & Tricks 2 Sebastian Zambanini - EVC - MATLAB Einführung

  3. MATLAB-Übungen  Benötigte Tools für die Übung: MATLAB und Blender  Blender-Einführung morgen (11.3.2015)  Angaben für MATLAB-Einführungs- beispiel ab heute (15 Uhr) verfügbar  4 Teile  Basics  Triangles  Images  Transformations  Weitere Aufgaben im Laufe des Semesters, die mithilfe von MATLAB zu lösen sind (Kamerasensoren,…) 3 Sebastian Zambanini - EVC - MATLAB Einführung

  4. Was ist MATLAB?  MATLAB = MAT rix LAB oratory  Software zur numerischen Berechnung mathematischer Probleme  Gegenstück: Mathematica, Maple für symbolische Algebra  Alternativen: eigentlich keine wg. des Umfangs Freier MATLAB-Klon: Octave (für die Übung nicht zu empfehlen, Octave-Lösungen werden nicht akzeptiert)  Hersteller: The MathWorks Inc.  aktuelle Version 8.4 (R2014b)  Viele Toolboxen für verschiedenste Anwendungsbereiche  Signalverarbeitung, Bildverarbeitung, Finanzmathematik, …  Proprietäre Programmiersprache 4 Sebastian Zambanini - EVC - MATLAB Einführung

  5. Was ist MATLAB?  Vorteile  Interpreter und interaktive Befehlseingabe: Schnelle und einfache Entwicklung von Programmen ( Rapid Prototyping )  Gutes Hilfesystem  Sehr umfangreich und mächtig dank zahlreicher Toolboxen  Erweiterbarkeit: C oder FORTRAN Code durch mex-Bibliotheken  Grafische Ausgaben: Bilder, 3D Plots,….  Nachteile  Nicht frei verfügbar  Durch Interpretersprache vergleichsweise langsame Ausführung von Programmen 5 Sebastian Zambanini - EVC - MATLAB Einführung

  6. Warum soll ich MATLAB erlernen?  Um die LVA zu bestehen ;-)  MATLAB kann für verschiedene Gebiete verwendet werden (z.B. Statistik, Optimierung, Signalverarbeitung,…)  Kann auch für spätere LVAs hilfreich sein und wird auch teilweise verwendet  MATLAB wird gerade in den Bereichen Bildverarbeitung, Computer Vision und Mustererkennung sehr häufig eingesetzt  Studierende des Bakk-Studiums 532 Medieninformatik und Visual Computing sowie Master-Studium 932 Visual Computing 6 Sebastian Zambanini - EVC - MATLAB Einführung

  7. Wie kann ich MATLAB erlernen?  Die heutige Einführung ist ein guter Start  Aber wie immer: „Learning by doing“  Probieren Sie die heute vorgestellten Code-Beispiele zuhause oder im Labor aus  Einführungsbeispiel: MATLAB Basics  MATLAB Primer http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf Erstes Kapitel: „Quick Start“  MATLAB ist leicht zu erlernen und bietet ein umfangreiches Hilfesystem  help befehl bzw. doc befehl  Wenn Sie nicht mehr weiterwissen  Google  www.informatik-forum.at  Tutoren im Pac-Man-Raum (Favoritenstrasse) zu den betreuten Übungszeiten 7 Sebastian Zambanini - EVC - MATLAB Einführung

  8. Benützung von MATLAB für die LVA  Lokale Installation auf eigenem Rechner  MATLAB-Studentenversion für Windows, Mac und Linux über ZID erhältlich ( € 13,90): http://www.sss.tuwien.ac.at/sss/mla/  In den Labors Favoritenstrasse  Einloggen per ssh auf Servern thales.inflab.tuwien.ac.at oder euklid.inflab.tuwien.ac.at  In der Linux-Umgebung in der Shell ssh – X thales oder ssh – X euclid eintippen  Account-Daten und Details zur Benützung werden noch bekannt gegeben 8 Sebastian Zambanini - EVC - MATLAB Einführung

  9. MATLAB Desktop Arbeitsverzeichnis Workspace : Variablen im Speicher Current Folder : Dateien im aktuellen Command Window : Eingabe von Arbeitsverzeichnis Befehlen Command History : Liste aller eingegebenen Befehle Details : Details zu Datei 9 Sebastian Zambanini - EVC - MATLAB Einführung

  10. Arbeiten mit MATLAB: Befehlseingabe  Zwei Möglichkeiten: Eingabe über Command Window oder Skriptdatei (sog. .m-File)  1. Command Window  Befehl wird nach dem Enter-Zeichen sofort ausgeführt  2. Skript Datei mytest.m:  Durch den Befehl wird das gleichnamige .m-File gestartet, welches wiederum eine Folge von Befehlen enthält  Erzeugen von .m-Files mithilfe des Editors edit dateiname.m  Kommentare mit %  Ein Semikolon ( ; ) unterdrückt die Ausgabe in der Kommandozeile 10 Sebastian Zambanini - EVC - MATLAB Einführung

  11. MATLAB Editor Skript starten (alternativ F5 drücken) 11 Sebastian Zambanini - EVC - MATLAB Einführung

  12. Dateneingabe - Variablen  Keine Variablendeklaration erforderlich  Alle Variablen sind standardmäßig Fließkommazahlen doppelter Präzision (Typ double )  Einfache Konvertierung in andere Datentypen möglich ( single , uint8 , int16 …)  Variablennamen sind case-sensitive  Falls keine Variable für Rückgabewert angegeben wird: Standardvariable ans 12 Sebastian Zambanini - EVC - MATLAB Einführung

  13. Dateneingabe - Vektoren  Eingabe der Werte in  Trennen der Spalten mittels , oder Leerzeichen  Trennen der Zeilen mittels ;  Zahlenreihen: von:schrittweite:bis bzw. von:bis 13 Sebastian Zambanini - EVC - MATLAB Einführung

  14. Dateneingabe - Matrizen  Mehrere Zeilen und Spalten  Verschiedene Befehle zum Erzeugen von Matrizen  Nullermatrix: zeros(zeilen,spalten)  Einsermatrix: ones(zeilen,spalten)  Matrix mit Zufallszahlen: rand(zeilen,spalten)  … 14 Sebastian Zambanini - EVC - MATLAB Einführung

  15. Zugriff auf Matrix- oder Vektor-Elemente  Zugriff auf Einzelelemente: A(zeile,spalte) = wert  Indizes beginnen bei 1!  Beim Überschreiten der Indexgrenzen wird die Matrixgröße angepasst und Elemente mit 0 aufgefüllt  Matrixbereiche ansprechen: Angabe der Zeilen und Spalten als Vektor 15 Sebastian Zambanini - EVC - MATLAB Einführung

  16. Zugriff auf Matrix- oder Vektor-Elemente  Matrixbereiche können auch mit einem skalaren Wert befüllt werden  end : max. Indexwert  Transponieren (Zeilen und Spalten vertauschen) mittels  Alle Zeilen bzw. Spalten ansprechen mittels : 16 Sebastian Zambanini - EVC - MATLAB Einführung

  17. Zugriff auf Matrix- oder Vektor-Elemente  Zugriff auf Elemente kann auch über logische Indizierung erfolgen  Benutzung einer logischen Indexvariable derselben Größe 17 Sebastian Zambanini - EVC - MATLAB Einführung

  18. Bilder und Mehrdimensionale Arrays  Grauwertbild: Matrix (2D Array)  Es sind auch Arrays mit mehr als 2 Dimensionen möglich  Beispiel: RGB-Bild (3 Dimensionen)  Größe des Bildes anzeigen und roten Kanal extrahieren:  Bildauschnitt extrahieren 18 Sebastian Zambanini - EVC - MATLAB Einführung

  19. Funktionen  Funktionen sind .m-Skripts mit Eingabe- und Rückgabewerten  Name der Funktion = Dateiname  Funktionen können auch Unterfunktionen haben, von außen ist aber nur die Hauptfunktion aufrufbar  Kein expliziter Befehl zur Parameterrückgabe, sondern einfaches Zuweisen der Rückgabevariable Datei absdiff.m: 19 Sebastian Zambanini - EVC - MATLAB Einführung

  20. Workspace  Alle über Skripts oder Command Window erzeugten Variablen bleiben im Workspace, bis sie überschrieben oder explizit gelöscht werden  Funktionen haben einen lokalen, von außen unsichtbaren Workspace  Alle lokalen Variablen werden nach Beendigung der Funktion gelöscht  Anzeigen des Workspaces im Command Window: whos  Löschen von Variablen: clear variable  Löschen aller Variablen: clear all 20 Sebastian Zambanini - EVC - MATLAB Einführung

  21. Programmflusssteuerung  while-Schleife  for-Schleife  if-else-Block 21 Sebastian Zambanini - EVC - MATLAB Einführung

  22. Operatoren Vergleichsoperatoren können auch element- Vergleichsoperatoren weise angewendet < kleiner werden: Unterschied zw. > größer Matrix-Multiplikation <= kleiner gleich und elementweiser >= größer gleich Multiplikation: == gleich ~= ungleich Arithmetische Operatoren + Addition - Subtraktion * Matrix-Multiplikation / Matrix-Division ^ Matrix-Potenzierung .* Elementweise Multiplikation ./ Elementweise Division .^ Elementweise Potenzierung 22 Sebastian Zambanini - EVC - MATLAB Einführung

  23. Vektorisierung  Nahezu alle Funktionen akzeptieren sowohl skalare als auch mehrdimensionale Eingaben  (for-) Schleifen werden sehr ineffizient ausgeführt  Schleifen können großteils vermieden werden Dauert 0,02 s Dauert 4,38 s 23 Sebastian Zambanini - EVC - MATLAB Einführung

  24. Visualisierung  MATLAB stellt leistungsfähige Funktionen und Tools zur Visualisierung von Daten bereit, unter anderem: 3D Plots 2D Plots Mehrere Bilder Abbildungen 24 Sebastian Zambanini - EVC - MATLAB Einführung

  25. Figures  Visualisierungen werden in eigenen Fenstern (sog. figures) gezeichnet  figure öffnet ein neues Fenster  figure(n) wählt das n-te Fenster zum Zeichnen aus oder öffnet es, falls noch nicht vorhanden  close n schließt das n-te Fenster  close all schließt alle Fenster  Eine figure bietet zahlreiche Tools zur Untersuchung der Daten (Zoomen, Wertebereich anpassen,…) 25 Sebastian Zambanini - EVC - MATLAB Einführung

  26. 2D Plots  Plotten von Wertepaaren: plot(x,y,‘formatstring‘) : rote durch-  gängige Linie  Formatierung der Plots: doc plot 26 Sebastian Zambanini - EVC - MATLAB Einführung

Recommend


More recommend