Vorwort | 5 |
Inhalt | 7 |
1 Einführung | 14 |
1.1 Hello, world | 14 |
1.2 Datenverarbeitung | 16 |
1.2.1 Hardware | 16 |
1.2.2 Software | 17 |
1.2.3 Datentypen | 19 |
1.2.4 Editieren | 20 |
1.2.5 Programmausführung | 20 |
1.3 Erster Kontakt mit MATLAB | 21 |
1.3.1 Der MATLAB-Desktop | 21 |
1.3.2 MATLAB als Taschenrechner | 22 |
1.3.3 Zahlen- und Textdarstellung | 24 |
1.3.4 Variablen und Datentypen | 26 |
1.3.5 Vektoren und Matrizen | 28 |
1.3.6 MATLAB aufräumen | 31 |
1.3.7 Zusammenfassung | 31 |
1.3.8 Aufgaben | 32 |
2 Programmstrukturen | 34 |
2.1 Funktionen | 34 |
2.1.1 Eine Black Box | 34 |
2.1.2 Eingangs- und Rückgabeparameter | 35 |
2.1.3 Funktionen in MATLAB | 36 |
2.1.4 Funktionsbeispiel: Umfang | 38 |
2.1.5 Stack, Funktionsparameter | 39 |
2.1.6 Ablaufprotokoll | 40 |
2.1.7 MATLAB-Arbeitsverzeichnis | 41 |
2.1.8 Zusammenfassung | 43 |
2.1.9 Aufgaben | 44 |
2.2 Ein- und Ausgabe | 45 |
2.2.1 I/O-Kanäle | 45 |
2.2.2 Einfache Ausgabe | 45 |
2.2.3 Formatierte Ausgabe | 46 |
2.2.4 Einfache Eingabe | 48 |
2.2.5 Ein-/Ausgabe-Beispiel: UmfangInput | 49 |
2.2.6 Zusammenfassung | 50 |
2.2.7 Aufgaben | 50 |
2.3 Ablaufstrukturen | 51 |
2.4 Verzweigungen | 52 |
2.4.1 Bedingungen | 52 |
2.4.2 Vergleiche | 53 |
2.4.3 Logische Verknüpfungen | 54 |
2.4.4 Alternative | 55 |
2.4.5 if-else-Beispiel: mySqrt | 57 |
2.4.6 Fallunterscheidung | 59 |
2.4.7 Zusammenfassung | 60 |
2.4.8 Aufgaben | 60 |
2.5 Schleifen | 61 |
2.5.1 Schleifenbedingung | 61 |
2.5.2 Zählschleife | 62 |
2.5.3 for-Beispiel: Fakultät | 64 |
2.5.4 Verschachtelte Schleifen | 65 |
2.5.5 Wiederholschleife | 68 |
2.5.6 while-Beispiel: e-Funktion | 69 |
2.5.7 Schleifen verlassen | 72 |
2.5.8 Zusammenfassung | 73 |
2.5.9 Aufgaben | 73 |
2.6 Felder | 74 |
2.6.1 Matrizen | 74 |
2.6.2 Matrix-Beispiel: sinPlot | 77 |
2.6.3 Matrizen erzeugen | 79 |
2.6.4 Der :-Operator | 81 |
2.6.5 meshgrid | 82 |
2.6.6 Matrix-Operatoren | 84 |
2.6.7 Verknüpfungen | 86 |
2.6.8 Cell-Arrays | 87 |
2.6.9 Zusammenfassung | 88 |
2.6.10 Aufgaben | 89 |
2.7 Grafik | 90 |
2.7.1 Grafiktypen | 90 |
2.7.2 2D-Grafik | 90 |
2.7.3 3D-Grafik | 97 |
2.7.4 Mehrere Plots in einer figure | 100 |
2.7.5 3D-Kurven | 102 |
2.7.6 Grafik-Handle | 103 |
2.7.7 Zusammenfassung | 105 |
2.7.8 Aufgaben | 106 |
2.8 Strukturen | 107 |
2.8.1 Strukturierte Daten | 107 |
2.8.2 Datenfelder | 108 |
2.8.3 struct | 109 |
2.8.4 struct-Beispiel: person | 111 |
2.8.5 struct ändern | 112 |
2.8.6 struct-Beispiel: CAD-Drahtmodell | 114 |
2.8.7 Objektorientierte Programmierung | 117 |
2.8.8 Zusammenfassung | 122 |
2.8.9 Aufgaben | 122 |
2.9 Dateien | 123 |
2.9.1 Dateizugriff | 123 |
2.9.2 Dateien lesen | 124 |
2.9.3 Dateien schreiben | 125 |
2.9.4 Zusammenfassung | 126 |
2.9.5 Aufgaben | 126 |
2.10 Strings | 127 |
2.10.1 Character-Arrays | 127 |
2.10.2 String-Funktionen | 128 |
2.10.3 String-Evaluation | 130 |
2.10.4 Zusammenfassung | 131 |
2.10.5 Aufgaben | 132 |
3 GUI | 134 |
3.1 Grafische Benutzeroberfläche | 134 |
3.1.1 Das große Warten – Callbacks | 134 |
3.1.2 Einführung in GUIDE | 136 |
3.1.3 Zusammenfassung | 139 |
3.1.4 Aufgaben | 139 |
3.2 GUI-Elemente | 140 |
3.2.1 Fenster und Maus | 140 |
3.2.2 GUIDE-M-File | 141 |
3.2.3 Text-Ausgabefeld | 144 |
3.2.4 Text-Eingabefeld | 148 |
3.2.5 GUI-Rückgabewert | 150 |
3.2.6 GUI-Grafikobjekt | 155 |
3.2.7 Pop-up-Menü | 156 |
3.2.8 Zusammenfassung | 159 |
3.2.9 Aufgaben | 159 |
3.3 GUI-Menüs | 160 |
3.3.1 Menu Bar | 160 |
3.3.2 Context Menu | 164 |
3.3.3 Zusammenfassung | 166 |
3.3.4 Aufgaben | 166 |
3.4 Standarddialoge | 166 |
3.4.1 Standarddialog-Typen | 166 |
3.4.2 Aufgaben | 169 |
3.5 Callback-Interaktionen | 170 |
3.5.1 Maus-Interaktion | 170 |
3.5.2 Tastatur-Interaktion | 174 |
3.5.3 Zusammenfassung | 176 |
3.5.4 Aufgaben | 176 |
4 Anwendungen | 178 |
4.1 Akustik: Signalverarbeitung | 178 |
4.1.1 Schwingungen | 178 |
4.1.2 Fourier-Transformation | 181 |
4.1.3 wav-Format | 186 |
4.1.4 Zusammenfassung | 188 |
4.1.5 Aufgaben | 188 |
4.2 Bildverarbeitung | 189 |
4.2.1 RGB-Farbmodell | 189 |
4.2.2 Grafikformate | 190 |
4.2.3 Bilder einlesen | 191 |
4.2.4 Bilder bearbeiten | 194 |
4.2.5 Hoch- und Tiefpass | 198 |
4.2.6 Zusammenfassung | 202 |
4.2.7 Aufgaben | 202 |
4.3 Spiel: Projekt Labyrinth | 203 |
4.3.1 Projektstruktur | 203 |
4.3.2 Datenbasis | 204 |
4.3.3 Spiel laden | 205 |
4.3.4 Spielfeld zeichnen | 214 |
4.3.5 Spielablauf | 217 |
4.3.6 Zusammenfassung | 219 |
4.3.7 Aufgaben | 220 |
4.4 Mathematik: Funktionen | 220 |
4.4.1 Polynome | 220 |
4.4.2 Kurvendiskussion | 221 |
4.4.3 Polynom-Interpolation | 223 |
4.4.4 Datenauswertung | 225 |
4.4.5 Nullstellen | 227 |
4.4.6 Newton-Verfahren | 231 |
4.4.7 Zusammenfassung | 234 |
4.4.8 Aufgaben | 234 |
4.5 Physik: Differentialgleichungen | 235 |
4.5.1 Federschwingung | 235 |
4.5.2 Differentialgleichungen | 236 |
4.5.3 Numerische Lösung | 238 |
4.5.4 Gedämpfte Schwingungen | 242 |
4.5.5 Erzwungene Schwingungen | 246 |
4.5.6 Zusammenfassung | 250 |
4.5.7 Aufgaben | 251 |
4.6 Technische Mechanik | 252 |
4.6.1 Zentrales Kraftsystem | 252 |
4.6.2 Lineare Gleichungssysteme | 253 |
4.6.3 Zusatzaufgabe | 255 |
4.6.4 Zusammenfassung | 257 |
4.6.5 Aufgaben | 257 |
4.7 Regelungstechnik | 259 |
4.7.1 Stehpendel | 259 |
4.7.2 Stabilität | 263 |
4.7.3 Eigenwerte und Eigenvektoren | 263 |
4.7.4 Regelung | 268 |
4.7.5 Control System Toolbox | 271 |
4.7.6 Simulink | 274 |
4.7.7 Zusammenfassung | 279 |
4.7.8 Aufgaben | 279 |
4.8 Prozess-Kommunikation | 280 |
4.8.1 COM, OLE und ActiveX | 281 |
4.8.2 Kontakt zu MS-Excel | 281 |
4.8.3 VBA-Kontakt zu Excel | 287 |
4.8.4 Zusammenfassung | 290 |
4.8.5 Aufgaben | 291 |
4.9 MEX – C in MATLAB | 291 |
4.9.1 C | 291 |
4.9.2 DLL | 293 |
4.9.3 C-Beispiel | 295 |
4.9.4 Parameterübergabe | 297 |
4.9.5 Zusammenfassung | 300 |
4.9.6 Aufgaben | 300 |
5 Programmierhilfen | 302 |
5.1 Das Programm läuft nicht! | 302 |
5.2 Der Debugger | 307 |
5.3 Weitere MATLAB-Tools | 308 |
5.3.1 M-Lint Code Checker | 309 |
5.3.2 Profiler | 309 |
5.3.3 Dependency Report | 309 |
5.3.4 Help Report | 309 |
5.3.5 File Comparison Report | 309 |
5.4 Zusammenfassung | 310 |
6 Befehlsübersicht | 312 |
Literatur | 321 |
Index | 325 |