|
Vorwort zur 3. Auflage |
6 |
|
|
Inhalt |
8 |
|
|
1 Einführung |
15 |
|
|
1.1 Hello, world |
15 |
|
|
1.2 Datenverarbeitung |
17 |
|
|
1.2.1 Hardware |
17 |
|
|
1.2.2 Software |
18 |
|
|
1.2.3 Datentypen |
20 |
|
|
1.2.4 Editieren |
21 |
|
|
1.2.5 Programmausführung |
21 |
|
|
1.3 Erster Kontakt mit MATLAB |
22 |
|
|
1.3.1 Der MATLAB-Desktop |
22 |
|
|
1.3.2 MATLAB als Taschenrechner |
23 |
|
|
1.3.3 Zahlen und Textdarstellung |
25 |
|
|
1.3.4 Variablen und Datentypen |
27 |
|
|
1.3.5 Vektoren und Matrizen |
29 |
|
|
1.3.6 MATLAB aufräumen |
32 |
|
|
1.3.7 Zusammenfassung |
32 |
|
|
1.3.8 Aufgaben |
33 |
|
|
2 Programmstrukturen |
35 |
|
|
2.1 Funktionen |
35 |
|
|
2.1.1 Eine Black Box |
35 |
|
|
2.1.2 Eingangs- und Rückgabeparameter |
36 |
|
|
2.1.3 Funktionen in MATLAB |
37 |
|
|
2.1.4 Funktionsbeispiel: Umfang |
39 |
|
|
2.1.5 Stack, Funktionsparameter |
40 |
|
|
2.1.6 Ablaufprotokoll |
42 |
|
|
2.1.7 MATLAB-Arbeitsverzeichnis |
43 |
|
|
2.1.8 Zusammenfassung |
45 |
|
|
2.1.9 Aufgaben |
45 |
|
|
2.2 Ein- und Ausgabe |
46 |
|
|
2.2.1 I/O-Kanäle |
46 |
|
|
2.2.2 Einfache Ausgabe |
47 |
|
|
2.2.3 Formatierte Ausgabe |
47 |
|
|
2.2.4 Einfache Eingabe |
49 |
|
|
2.2.5 Ein-/Ausgabe-Beispiel: UmfangInput |
51 |
|
|
2.2.6 Zusammenfassung |
52 |
|
|
2.2.7 Aufgaben |
53 |
|
|
2.3 Ablaufstrukturen |
53 |
|
|
2.4 Verzweigungen |
54 |
|
|
2.4.1 Bedingungen |
54 |
|
|
2.4.2 Vergleiche |
55 |
|
|
2.4.3 Logische Verknüpfungen |
56 |
|
|
2.4.4 Alternative |
57 |
|
|
2.4.5 if-else-Beispiele |
60 |
|
|
2.4.6 Fallunterscheidung |
62 |
|
|
2.4.7 Zusammenfassung |
63 |
|
|
2.4.8 Aufgaben |
63 |
|
|
2.5 Schleifen |
64 |
|
|
2.5.1 Schleifenbedingung |
64 |
|
|
2.5.2 Zählschleife |
65 |
|
|
2.5.3 for-Beispiel: Fakultät |
68 |
|
|
2.5.4 Verschachtelte Schleifen |
70 |
|
|
2.5.5 Wiederholschleife |
72 |
|
|
2.5.6 while-Beispiel: e-Funktion |
74 |
|
|
2.5.7 Schleifen verlassen |
76 |
|
|
2.5.8 Zusammenfassung |
77 |
|
|
2.5.9 Aufgaben |
77 |
|
|
2.6 Felder |
78 |
|
|
2.6.1 Matrizen |
78 |
|
|
2.6.2 Matrix-Beispiel: sinPlot |
82 |
|
|
2.6.3 Matrizenerzeugen |
84 |
|
|
2.6.4 Der :-Operator und linspace |
86 |
|
|
2.6.5 meshgrid |
88 |
|
|
2.6.6 Matrix-Operatoren |
90 |
|
|
2.6.7 Verknüpfungen |
92 |
|
|
2.6.8 Cell-Arrays |
93 |
|
|
2.6.9 Zusammenfassung |
94 |
|
|
2.6.10 Aufgaben |
95 |
|
|
2.7 Grafik |
96 |
|
|
2.7.1 Grafiktypen |
96 |
|
|
2.7.2 2D-Grafik |
96 |
|
|
2.7.3 3D-Grafik |
103 |
|
|
2.7.4 Mehrere Plots in einer figure |
106 |
|
|
2.7.5 3D-Kurven |
107 |
|
|
2.7.6 Grafik-Handle |
108 |
|
|
2.7.7 Zusammenfassung |
111 |
|
|
2.7.8 Aufgaben |
111 |
|
|
2.8 Strukturen |
112 |
|
|
2.8.1 Strukturierte Daten |
112 |
|
|
2.8.2 Datenfelder |
113 |
|
|
2.8.3 struct |
114 |
|
|
2.8.4 struct-Beispiel: person |
116 |
|
|
2.8.5 struct ändern |
117 |
|
|
2.8.6 struct-Beispiel: CAD-Drahtmodell |
119 |
|
|
2.8.7 Objektorientierte Programmierung |
122 |
|
|
2.8.8 Zusammenfassung |
127 |
|
|
2.8.9 Aufgaben |
127 |
|
|
2.9 Dateien |
128 |
|
|
2.9.1 Dateizugriff |
128 |
|
|
2.9.2 Dateien lesen |
129 |
|
|
2.9.3 Dateien schreiben |
130 |
|
|
2.9.4 Zusammenfassung |
131 |
|
|
2.9.5 Aufgaben |
131 |
|
|
2.10 Strings |
132 |
|
|
2.10.1 Character-Arrays |
132 |
|
|
2.10.2 String-Funktionen |
133 |
|
|
2.10.3 String-Evaluation |
135 |
|
|
2.10.4 Zusammenfassung |
136 |
|
|
2.10.5 Aufgaben |
137 |
|
|
3 GUI |
139 |
|
|
3.1 Grafische Benutzeroberfläche |
139 |
|
|
3.1.1 Das große Warten – Callbacks |
139 |
|
|
3.1.2 Einführung in GUIDE |
141 |
|
|
3.1.3 Zusammenfassung |
144 |
|
|
3.1.4 Aufgaben |
144 |
|
|
3.2 GUI-Elemente |
145 |
|
|
3.2.1 Fenster und Maus |
145 |
|
|
3.2.2 GUIDE-M-File |
146 |
|
|
3.2.3 Text-Ausgabefeld |
149 |
|
|
3.2.4 Text-Eingabefeld |
153 |
|
|
3.2.5 GUI-Rückgabewert |
155 |
|
|
3.2.6 GUI-Grafikobjekt |
160 |
|
|
3.2.7 Pop-up-Menü |
161 |
|
|
3.2.8 Zusammenfassung |
164 |
|
|
3.2.9 Aufgaben |
164 |
|
|
3.3 GUI-Menüs |
165 |
|
|
3.3.1 Menu Bar |
165 |
|
|
3.3.2 Context Menu |
169 |
|
|
3.3.3 Zusammenfassung |
171 |
|
|
3.3.4 Aufgaben |
171 |
|
|
3.4 Standarddialoge |
171 |
|
|
3.4.1 Standarddialog-Typen |
171 |
|
|
3.4.2 Aufgaben |
174 |
|
|
3.5 Callback-Interaktionen |
175 |
|
|
3.5.1 Maus-Interaktion |
175 |
|
|
3.5.2 Tastatur-Interaktion |
179 |
|
|
3.5.3 Zusammenfassung |
181 |
|
|
3.5.4 Aufgaben |
181 |
|
|
4 Anwendungen |
183 |
|
|
4.1 Akustik: Signalverarbeitung |
183 |
|
|
4.1.1 Schwingungen |
183 |
|
|
4.1.2 Fourier-Transformation |
187 |
|
|
4.1.3 wav-Format |
192 |
|
|
4.1.4 Zusammenfassung |
194 |
|
|
4.1.5 Aufgaben |
194 |
|
|
4.2 Bildverarbeitung |
195 |
|
|
4.2.1 RGB-Farbmodell |
195 |
|
|
4.2.2 Grafikformate |
196 |
|
|
4.2.3 Bilder einlesen |
197 |
|
|
4.2.4 Bilder bearbeiten |
200 |
|
|
4.2.5 Hoch und Tiefpass |
204 |
|
|
4.2.6 Zusammenfassung |
208 |
|
|
4.2.7 Aufgaben |
208 |
|
|
4.3 Spiel: Projekt Labyrinth |
209 |
|
|
4.3.1 Projektstruktur |
209 |
|
|
4.3.2 Datenbasis |
210 |
|
|
4.3.3 Spiel laden |
211 |
|
|
4.3.4 Spielfeld zeichnen |
220 |
|
|
4.3.5 Spielablauf |
223 |
|
|
4.3.6 Zusammenfassung |
225 |
|
|
4.3.7 Aufgaben |
226 |
|
|
4.4 Mathematik: Funktionen |
226 |
|
|
4.4.1 Polynome |
226 |
|
|
4.4.2 Kurvendiskussion |
227 |
|
|
4.4.3 Polynom-Fit |
230 |
|
|
4.4.4 Datenauswertung |
233 |
|
|
4.4.5 Nullstellen |
234 |
|
|
4.4.6 Newton-Verfahren |
239 |
|
|
4.4.7 Numerische Integration |
241 |
|
|
4.4.8 Vektorfelder |
242 |
|
|
4.4.9 Zusammenfassung |
245 |
|
|
4.4.10 Aufgaben |
245 |
|
|
4.5 Physik: Differentialgleichungen |
246 |
|
|
4.5.1 Federschwingung |
246 |
|
|
4.5.2 Differentialgleichungen |
247 |
|
|
4.5.3 Numerische Lösung |
249 |
|
|
4.5.4 Gedämpfte Schwingungen |
253 |
|
|
4.5.5 Erzwungene Schwingungen |
257 |
|
|
4.5.6 Randwertproblem |
261 |
|
|
4.5.7 Zusammenfassung |
266 |
|
|
4.5.8 Aufgaben |
266 |
|
|
4.6 Technische Mechanik |
268 |
|
|
4.6.1 Zentrales Kraftsystem |
268 |
|
|
4.6.2 Lineare Gleichungssysteme |
269 |
|
|
4.6.3 Zusatzaufgabe |
271 |
|
|
4.6.4 Zusammenfassung |
273 |
|
|
4.6.5 Aufgaben |
273 |
|
|
4.7 Regelungstechnik |
275 |
|
|
4.7.1 Stehpendel |
275 |
|
|
4.7.2 Stabilität |
279 |
|
|
4.7.3 Eigenwerte und Eigenvektoren |
279 |
|
|
4.7.4 Regelung |
284 |
|
|
4.7.5 Control System Toolbox™ |
287 |
|
|
4.7.6 Simulink® |
290 |
|
|
4.7.7 Zusammenfassung |
295 |
|
|
4.7.8 Aufgaben |
295 |
|
|
4.8 Prozess-Kommunikation |
296 |
|
|
4.8.1 COM, OLE und ActiveX |
297 |
|
|
4.8.2 Kontakt zu MS-Excel |
297 |
|
|
4.8.3 VBA-Kontakt zu Excel |
303 |
|
|
4.8.4 Weitere COM-Excel-Beispiele |
306 |
|
|
4.8.5 Zusammenfassung |
309 |
|
|
4.8.6 Aufgaben |
309 |
|
|
4.9 MEX – C in MATLAB |
310 |
|
|
4.9.1 C |
310 |
|
|
4.9.2 DLL |
312 |
|
|
4.9.3 C-Beispiel |
313 |
|
|
4.9.4 Parameterübergabe |
315 |
|
|
4.9.5 Zusammenfassung |
319 |
|
|
4.9.6 Aufgaben |
319 |
|
|
5 Programmierhilfen |
321 |
|
|
5.1 Das Programm läuft nicht! |
321 |
|
|
5.2 Der Debugger |
326 |
|
|
5.3 Weitere MATLAB-Tools |
327 |
|
|
5.3.1 M-Lint Code Checker |
328 |
|
|
5.3.2 Profiler |
328 |
|
|
5.3.3 Dependency Report |
328 |
|
|
5.3.4 Help Report |
328 |
|
|
5.3.5 File Comparison Report |
328 |
|
|
5.4 Zusammenfassung |
329 |
|
|
6 Befehlsübersicht |
331 |
|
|
Literatur |
340 |
|
|
Index |
344 |
|