Download Anwendungssoftware: MATLAB...
VU Anwendungssoftware: MATLAB“ ” A. Uhl Fachbereich Computerwissenschaften ¨ Salzburg Universitat
12. Juni 2008
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
1
Personalia: A. Uhl Email-Adresse: [emailprotected]. Basis-URL: http://www.cosy.sbg.ac.at/staff/andreas.uhl.html. Buro: ¨ FB Computerwissenschaften, Zi. 1.11, Jakob-Haringer Str. 2, Salzburg-Itzling. Telefonnummer (Buro): ¨ (0662) 8044-6303. Telefonnummer (Sekretariat): (0662) 8044-6328.
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
2
Formalia LVA-URL: http://www.cosy.sbg.ac.at/˜uhl/student.html. Abhaltezeit der LVA: FR 1300– 1345 VO, anschliessend zwei Gruppen je 45 Minuten, ¨ nach Bedarf am Ende des Semesters. mit Verlangerungen Termine: 7.3., 11.4., 18.4., 25.4., 16.5., 23.5, 30.5., 6.6., 13.6., 20.6., 27.6. ¨ Abhalteort der LVA: Horsaal T02 + Rechneruebungsraum
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
3
Vorwort
Willkommen zur Lehrveranstaltung Anwendungssoftware: MATLAB. Es handelt sich ¨ um eine einfuhrende Uberblicksveranstaltung, die Pflicht LVA ist fur ¨ ¨ Ingeneurwissenschaften and Wahlfach fur ¨ Angewandte Informatik. ¨ im Bereich MATLAB. Etliche Es gibt hier im Haus bisher keinerlei Lehraktivitat ¨ MATLAB. Gruppen verwenden allerdings in der Forschungstatigkeit
Uhl: MatLab SS 2008
4
Organisatorisches
• Leistungsfeststellung 1. Schriftliche Klausur (Multiple Choice und Kurzfragen) zur Vorlesung und den Ab¨ schlussprasentationen der Projekte. 1. Termin nach Wunsch nahe Semesterende. 2. Ausarbeitung und Abgabe von Hausubungen (nicht jede Woche !). ¨ ¨ ¨ 3. Bearbeitung/Prasentation eines grosseren Projektes in Gruppen.
• Skriptum auf meiner Webseite www.cosy.sbg.ac.at/˜uhl/student.html zum Download. Im Skriptum wird konsequent Copyright verletzt, wesentliche Teile wer¨ den durch die Verwendung von Fremdskripten abgedeckt. Achtung: Skriptum wachst inkrementell mit !
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
5
Inhalte • Introduction • MATLAB als Taschenrechner • Datentypen • Graphics • Kontrollstrukturen • Programmierung mit MATLAB • Spezialthemen (Einbindung von C-code, Laufzeiteffizienz, Toolboxes, ......)
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
6
Literatur • Bucher (in der Bibiothek) ¨ ? ? ? ?
¨ MATLAB 6.5 eine Einfuhrung (Uberhuber, Katzenbeisser, 2002) ¨ MATLAB for Engineers Explained (Gustafsson, Bergman, 2005) MATLAB 5 fur ¨ Ingeneure (Biran, Breiner, 1999) Pattern Classification (Computer Manual in MATLAB) (D.G. Stork, E.Y.Tov, 2004)
• On-line Resourcen ? www.mathworks.com ? MATLAB CENTRAL ? auf meiner Studentenseite einige weitere Links
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
7
Inhalt • MATLAB Einfuhrung, ¨
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
8
Einfuhrung ¨ MATLAB I Begrifflich: MATrix LABratory Alternativen (kommerziell):
• Mathematica • Maple Alternativen (frei):
• Octave • SciLab Allgemeines zu MATLAB: Skript C2-C3, C15-C29, B8-B10 Datentypen und elementare Operationen: Skript C29 - C41 Vektoren: Skript A4 - A6 (sections 8 & 9) Matrizen Erzeugung und Addressierung: Skript C42 - C47, B16 (sec. 2.6), B18 - B19 (section 2.8) Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
9
1. Assignment
1. Sich vertraut machen mit der Arbeitsumgebung in MatLab, Demos anschauen, Help ausprobieren 2. pages 13 - 14 von http://www.cosy.sbg.ac.at/˜uhl/matlab1.pdf (Hardcopy verteilt) 3. Section 2.9 Exercises in Skript B (als Assignment1.m speichern)
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
10
Einfuhrung ¨ MATLAB II
Vektor und Martix Operationen: C47 - C53, B49 - B51 2. Assignment 1. Aufgaben 27 und 29 in Skript C (S. 50 und 51). ¨ 2. Generieren sie eine zufallige Matrix A deren Elemente zeilenweise sortiert sind. Ma¨ trix B sei eine Matrix mit 5 aquidistanten Punkten zwischen 1 und 7 als Diagonalelemente, ansonsten 0. Berechnen sie Punktweises Produkt und Matrixprodukt zwischen A und B. Von den “Maximalvektoren” der beiden Ergebnismatrizen soll auf zwei Arten das innere Produkt bestimmt werden.
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
11
Kontrollstrukturen fur ¨ die Programmierung
Logische Operatoren, Flowcontrol und Schleifen: B55 - B70, C77 - C79 3. Assignment ¨ Erzeugen sie eine zufallige 10 x 10 Matrix A die aus Integers aus [1,100] besteht. Diese Matrix soll wie folgt modifiziert werden bis der Mittelwert ihrer Diagonalelemente gleich dem Median ist oder die beschriebene Modifikation 1000 Mal durchgefuhrt ¨ worden ist (Ausgabe ist dann das Mittelwert - Median Paar mit der kleinsten Differenz): fur ¨ jede Zeile und jede Spalte der Matrix soll 5 mal folgends getan werden: ist der ¨ ¨ (kleiner) als der Median, soll der grosste (kleinste) Wert Zeilen/Spalten MW grosser der Zeile/Spalte durch den auf Integer gerundeten Mittelwert ersetzt werden.
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
12
MatLab .m-Files
Script Files und Function Files: C80 - C83, C86, A24 - A25 Timing: B108 MatLab kann auch zum Batch-processing verwendet werden. Das dafur ¨ notwendige Skriptfile (im Beispiel “foobar.m”) muss sich im MatLab Pfad befinden. Der Kommandozeilenbefehl matlab -r foobar -nodisplay fuhrt foobar aus und ¨ beendet MatLab wieder. ¨ “foobar.m” konnte wie folgt aussehen:
a = 3+3; fid = fopen(’/tmp/foobar’,’w’); fprintf(fid,’%d\n’, a); fclose(fid); exit;
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
13
4. Assignment
Schreiben sie zwei Varianten einer Funktion (als m-File) zur Berechnung des Binomialkoeffizienten:
n n! = k!(n − k)! k Eine Variante soll die rekursive Definition n! = n(n − 1)! verwenden, die andere ein klassisches Schleifenkonstrukt. Erstellen sie ein Skript File (als m-File) in dem sie fur ¨ beide Funktionsvarianten den Binomialkoeffizienten fur ¨ wachsende n und k berechnen bis die Berechnung einer ¨ Variante langer als 30 Sekunden dauert. Auszugeben sind jeweils n, k, und der Zeitbedarf fur ¨ jede Variante. Das Skript File muss auf der Kommandozeile ohne Fehlermedlung ausfuhrbar sein. ¨
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
14
Visualisierung
Graphik & Plots: B73 - B89, C60 - C73 5. Assignment Fuhren sie das Programm von Assignment 3 100 Mal durch und visualisieren sie die ¨ Ergebnisse (Differenzen zwischen Median und Mittelwert) als Histogramm (also welche Differenzen kommen wie oft vor) sowie als Scatterplot von der Anzahl der ¨ Programmdurchlaufe bis zum Abbruch vs. den obigen Differenzen. Visualsisieren sie weiters den Zeitbedarf fur ¨ die Berechnung der Binomialkoeffizienten (je 2 Varianten) aus Assignment 4 fur ¨ verschiedene n und k Konfiguarationen als 3D Plot und als Bar-Chart. Verwenden sie fur ¨ die Achsenbeschriftung fur ¨ jeden Plot eine aus dem ¨ ¨ Intervall [10,20] zufallig gewahlte Fontsize. Die entstehenen 4 Plots sollen in einem Plot kombiniert werden. [Bis hierher soll die Aufgabe als Skriptfile assignment5.m realisiert werden]. Lernen sie ausserdem, interaktiv die Legende zu positionieren und ¨ die Graphik als .png zu exportieren. [interaktiv am Gerat].
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
15
I/O Grundlegende Ein- und Ausgabe: C55 - C57, A29 - A30 Spezielle Datentypen: B21 - B30 (Excel, CSV, Text), C73 - C74 (Bilder) 6. Assignment Lesen sie ihr liebstes Urlaubsfoto (oder ein anderes .jpg file) ein und konvertieren sie ¨ es in ein Grauwertbild (Grauwert Y eines Pixels ergibt sich aus den Pixel Farbkanalen RGB als Y = 0.5G + 0.3R + 0.2B). Schreiben sie eine Function smooth.m, der sie eine ¨ Pixelposition und eine Nachbarschaftsgrosse ubergeben. Diese Funktion berechnet ¨ den Mittelwert der Grauwerte in einem 3x3, 5x5, oder 7x7 Fenster der Y Werte wobei die ubergebene Pixelposition im Zentrum des Fensters liegt, dieser Mittelwert ist der ¨ Ruckgabewert der Funktion. smooth.m soll auf alle Pixel des Bildes angewendet ¨ werden (wobei jeder Pixel durch den Ruckgabewert ersetzt wird) und die drei ¨ Ergebnisse sollen mit fprintf in je ein File geschrieben werden, sodass korrekt formatierte ascii .pgm Files entstehen (die dann mit einem Bildbearbeitungsprogramm betrachtet werden sollen; dazu muss naturlich auch ein korrekter Header geschrieben ¨ ¨ werden). Zum Format dieser Files siehe google .pgm oder ahnlich.
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
Effizientes Programmieren & Symbolisches Rechnen Effizientes Programmieren: C86 - C89 Symbolisches Rechnen: C167 - C186 7. Assignment Schreiben sie drei Sortierfunktionen Heap.m, Quick.m und Bubble.m (als eigene function-files) welche HeapSort, QuickSort und BubbleSort realisieren. ¨ Eingabeparameter sind ein (unsortierter) Vektor und dessen Lange, Ruckgabewert ist ¨ ¨ Vektoren der sortierte Vektor. Erstellen sie ein Skriptfile Assignment7.m das zufallige ¨ ¨ aufsteigender Lange erzeugt (maximale Lange durch interaktive Eingabe von der ¨ ¨ sollen 100 zufallige Instanzen erzeugt und sortiert werden Tastatur). Von jeder Lange (mit den drei eigenen Sortierfunktionen und der MatLab eigenen Sortierfunktion) und ¨ ¨ die benotigten Zeiten gemessen werden. Berechnen sie fur den ¨ jede Vektorlange ¨ Rechenzeiten der vier Sortierverfahren. Mittelwert und die Varianz der benotigten ¨ beschrifteten”, S/W druckbaren Plot der die mittleren Erstellen sie einen “schon ¨ Rechenzeiten (mit Varianzen als “Errorbars”) der vier Verfahren gegen die Vektorlange ¨ auftragt. Abzugeben in einem Archiv (.zip oder .tar, nicht .rar) sind die vier .m Files sowie der Plot als .png File.
16
Uhl: MatLab SS 2008
17
Finale ¨ Ich hoffe ich habe mit dieser LVA ihr Interesse an der Thematik wecken konnen. Ich ¨ wunsche ihnen schone Ferien und alles Gute bei der Klausur. ¨
Quit
Full Screen
Previous Page
Next Page
GoTo Page
Go Forward
Go Back
Uhl: MatLab SS 2008
18
Literaturhinweise