Ulrich Stein
Programmieren mit MATLAB
Programmiersprache, Grafische Benutzeroberflächen, Anwendungen
Vorwort zur 6. Auflage
6
Inhalt
8
1 Einführung
14
1.1?Hello, world
14
1.2?Datenverarbeitung
16
1.2.1?Hardware
16
1.2.2?Software
18
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
25
1.3.5?Vektoren und Matrizen
29
1.3.6?MATLAB aufräumen
32
1.3.7?Zusammenfassung
32
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
40
2.1.6?Ablaufprotokoll
43
2.1.7?MATLAB-Arbeitsverzeichnis
43
2.1.8?Zusammenfassung
46
2.1.9?Aufgaben
46
2.2?Ein- und Ausgabe
47
2.2.1?I/O-Kanäle
47
2.2.2?Einfache Ausgabe
48
2.2.3?Formatierte Ausgabe
48
2.2.4?Einfache Eingabe
50
2.2.5?Ein-/Ausgabe-Beispiel: UmfangInput
52
2.2.6?varargs-Mechanismus
53
2.2.7?Zusammenfassung
54
2.2.8?Aufgaben
54
2.3?Ablaufstrukturen
55
2.4?Verzweigungen
56
2.4.1?Bedingungen
56
2.4.2?Vergleiche
56
2.4.3?Logische Verknüpfungen
57
2.4.4?Alternative
58
2.4.5?if-else-Beispiele
61
2.4.6?Fallunterscheidung
63
2.4.7?Zusammenfassung
65
2.4.8?Aufgaben
65
2.5?Schleifen
66
2.5.1?Schleifenbedingung
66
2.5.2?Zählschleife
67
2.5.3?Summen- und Produkt-Bildung
70
2.5.4?Iteration und Rekursion
72
2.5.5?Verschachtelte Schleifen
73
2.5.6?Wiederholschleife
75
2.5.7?while-Beispiel: e-Funktion
77
2.5.8?Numerische Verfahren
79
2.5.9?Schleifen verlassen
81
2.5.10?Zusammenfassung
82
2.5.11?Aufgaben
82
2.6?Felder
83
2.6.1?Matrizen
83
2.6.2?Matrix-Beispiel: sinPlot
86
2.6.3?Matrizen erzeugen
88
2.6.4?Der :-Operator und linspace
89
2.6.5?Analyse von Feldern
91
2.6.6?meshgrid
92
2.6.7?Matrix-Operatoren
95
2.6.8?Verknüpfungen
97
2.6.9?Cell-Arrays
97
2.6.10?Zusammenfassung
99
2.6.11?Aufgaben
100
2.7?Grafik
101
2.7.1?Grafiktypen
101
2.7.2?2D-Grafik
101
2.7.3?3D-Grafik
109
2.7.4?Mehrere Plots in einer figure
112
2.7.5?3D-Kurven
114
2.7.6?Grafik-Handle
115
2.7.7?Zusammenfassung
118
2.7.8?Aufgaben
119
2.8?Strukturen und Klassen
120
2.8.1?Strukturierte Daten
120
2.8.2?Datenfelder
121
2.8.3?struct
121
2.8.4?Suchen
123
2.8.5?struct ändern
125
2.8.6?struct-Beispiel: CAD-Drahtmodell
126
2.8.7?Objektorientierte Programmierung (OOP)
129
2.8.8?Zusammenfassung
135
2.8.9?Aufgaben
136
2.9?Dateien
136
2.9.1?Dateizugriff
136
2.9.2?Dateien lesen
138
2.9.3?Dateien schreiben
138
2.9.4?Excel-Dateien
139
2.9.5?MAT-Files
141
2.9.6?Zusammenfassung
142
2.9.7?Aufgaben
142
2.10?Strings
143
2.10.1?Character-Arrays
143
2.10.2?String-Funktionen
145
2.10.3?String-Evaluation
148
2.10.4?Zusammenfassung
149
2.10.5?Aufgaben
150
3 GUI
152
3.1?Grafische Benutzeroberfläche
152
3.1.1?Das große Warten – Callbacks
152
3.1.2?Einführung in GUIDE
154
3.1.3?Zusammenfassung
157
3.1.4?Aufgaben
157
3.2?GUI-Elemente
157
3.2.1?Fenster und Maus
157
3.2.2?GUIDE-M-File
158
3.2.3?Text-Ausgabefeld
162
3.2.4?Text-Eingabefeld
165
3.2.5?GUI-Rückgabewert
167
3.2.6?GUI-Grafikobjekt
171
3.2.7?Pop-up-Menü
172
3.2.8?Zusammenfassung
174
3.2.9?Aufgaben
175
3.3?GUI-Menüs
175
3.3.1?Menu Bar
176
3.3.2?Context Menu
179
3.3.3?Zusammenfassung
181
3.3.4?Aufgaben
182
3.4?Standarddialoge
182
3.4.1?Standarddialog-Typen
182
3.4.2?Aufgaben
186
3.5?Callback-Interaktionen
186
3.5.1?Maus-Interaktion
186
3.5.2?Tastatur-Interaktion
190
3.5.3?Zusammenfassung
192
3.5.4?Aufgaben
192
4 Anwendungen
193
4.1?Akustik: Signalverarbeitung
193
4.1.1?Schwingungen
193
4.1.2?Fourier-Transformation
197
4.1.3?Audio-Funktionen
201
4.1.4?Zusammenfassung
202
4.1.5?Aufgaben
202
4.2?Bildverarbeitung
204
4.2.1?RGB-Farbmodell
204
4.2.2?Grafikformate
204
4.2.3?Bilder einlesen
205
4.2.4?Bilder bearbeiten
208
4.2.5?Hoch- und Tiefpass
212
4.2.6?Zusammenfassung
215
4.2.7?Aufgaben
216
4.3?Spiel: Projekt Labyrinth
216
4.3.1?Projektstruktur
216
4.3.2?Datenbasis
218
4.3.3?Spiel laden
219
4.3.4?Spielfeld zeichnen
224
4.3.5?Spielablauf
226
4.3.6?Zusammenfassung
227
4.3.7?Aufgaben
227
4.4?Mathematik: Funktionen
228
4.4.1?Polynome
228
4.4.2?Kurvendiskussion
229
4.4.3?Polynom-Fit, Lineare Regression
231
4.4.4?Datenauswertung
235
4.4.5?Nullstellen
236
4.4.6?Newton-Verfahren
240
4.4.7?Numerische Integration
243
4.4.8?Vektorfelder
245
4.4.9?Zusammenfassung
247
4.4.10?Aufgaben
248
4.5?Physik: Differentialgleichungen
249
4.5.1?Federschwingung
249
4.5.2?Differentialgleichungen
250
4.5.3?Numerische Lösung
252
4.5.4?Ungedämpfte Schwingungen
256
4.5.5?Gedämpfte Schwingungen
259
4.5.6?Erzwungene Schwingungen
262
4.5.7?Randwertproblem
266
4.5.8?Zusammenfassung
270
4.5.9?Aufgaben
271
4.6?Technische Mechanik
272
4.6.1?Zentrales Kraftsystem
272
4.6.2?Lineare Gleichungssysteme
273
4.6.3?Zusatzaufgabe
275
4.6.4?Gaußsches Eliminationsverfahren
277
4.6.5?Multivariate Regression
280
4.6.6?Zusammenfassung
282
4.6.7?Aufgaben
282
4.7?Regelungstechnik
284
4.7.1?Stehpendel
284
4.7.2?Stabilität
288
4.7.3?Eigenwerte und Eigenvektoren
289
4.7.4?Regelung
292
4.7.5?Control System Toolbox™
296
4.7.6?Simulink®
298
4.7.7?Zusammenfassung
304
4.7.8?Aufgaben
304
4.8?Prozess-Kommunikation, Internet
305
4.8.1?COM, OLE und ActiveX
306
4.8.2?Kontakt zum Internet Explorer
306
4.8.3?Java Virtual Machine (JVM)
311
4.8.4?Zusammenfassung
314
4.8.5?Aufgaben
315
4.9?MEX – C in MATLAB
315
4.9.1?C
316
4.9.2?DLL
318
4.9.3?C-Beispiel
319
4.9.4?Parameterübergabe
321
4.9.5?Zusammenfassung
324
4.9.6?Aufgaben
324
5 Programmierhilfen
325
5.1?Das Programm läuft nicht!
325
5.2?Der Debugger
329
5.3?Weitere MATLAB-Tools
331
5.3.1?M-Lint Code Checker
331
5.3.2?Profiler
331
5.3.3?Dependency Report
332
5.3.4?Help Report
332
5.3.5?File Comparison Report
332
5.4?Zusammenfassung
332
6 Befehlsübersicht
334
Literatur
344
Index
348
© 2009-2024 ciando GmbH