Einstieg in das Programmieren mit MATLAB (eBook)
333 Seiten
Carl Hanser Fachbuchverlag
978-3-446-41289-7 (ISBN)
Ausführlich wird demonstriert, wie man Daten und Messwerte grafisch darstellen kann und wie grafische Benutzeroberflächen erzeugt werden. Darauf aufbauend vertiefen zahlreiche Anwendungen aus Ingenieur- und Naturwissenschaften das Wissen und führen in die weitergehenden numerischen Verfahren von MATLAB ein. Wo für spezielle Probleme das Basismodul von MATLAB nicht mehr ausreicht, wird für eine intensivere Nutzung auf die MATLAB-Toolboxen verwiesen - deren Installation zum Verständnis dieses Buches jedoch nicht notwendig ist.
Beispiele, zahlreiche Abbildungen und Übungsaufgaben zum Stoff fördern das Verständnis. Das Werk ist sowohl für Programmierneulinge als auch für Umsteiger von anderen Programmiersprachen wie C geeignet.
Dr. Ulrich Stein ist Professor für Maschinenbauinformatik/Physik/Mathematik am Department Maschinenbau und Produktion der HAW Hamburg.
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
3 GUI (S. 134)
3.1 Grafische Benutzeroberfläche
Bei den bisher vorgestellten MATLAB-Programmen war es so, dass der Programmablauf bereits vor dem Start des Programms ziemlich genau festgelegt wurde. Alles kommt schön der Reihe nach. Nur an fest definierten Stellen kann es eine Verzweigung geben oder man wiederholt einen Abschnitt in einer Schleife. Zu genau vorbestimmten Zeiten werden Sie aufgefordert, Daten über die Tastatur einzugeben. Und nur dann, wenn das Programm es für richtig erachtet, bekommen Sie die Ergebnisse auf dem Bildschirm angezeigt.
Das heißt – der Ablauf ist vorhersehbar und folgt dem vom Programmierer vorgegebenen Muster, einem Plan, dem der Benutzer des Programms folgen muss. Bei Programmen mit grafischer Benutzeroberfläche (Graphical User Interface – GUI) scheint plötzlich alles anders zu sein. Jetzt hat der Benutzer das Kommando. Mit der Maus oder der Tastatur bestimmt er, wann die nächste Aktion startet und was das Programm dann machen soll.
Das klingt auf den ersten Blick alles sehr demokratisch und selbstbestimmt – ist aber letzten Endes nur Propaganda: Auch bei GUI-Programmen haben die Programmierer im Voraus genau festgelegt, wann welche Aktion durchgeführt wird. Und zur Kontrolle der Benutzereingaben werden exakt dieselben Programmstrukturen verwendet wie bisher, also Verzweigungen und Schleifen.
3.1.1 Das große Warten – Callbacks
Sie kennen wahrscheinlich die folgende Situation: Man möchte etwas zusammen unternehmen und wartet darauf, dass der Partner zurückruft, damit es endlich losgehen kann. Dieses große Warten ist das eigentliche Geheimnis von GUI. Während die bisher vorgestellten Programme nach dem Start sofort mit Benutzerabfragen, Berechnungen etc. loslegten, erzeugen GUI-Programme nach dem Start normalerweise nur die Daten für ein Startfenster (Window) und melden dem Betriebssystem, dass ein neues Fenster auf dem Bildschirm bereitsteht. Dann wartet das GUI-Programm in einer while-Schleife, der so genannten Message-Loop, auf „Meldungen" (messages) vom Betriebssystem.
Meldungen vom Betriebssystem – wie hat man sich das vorzustellen? Das Betriebssystem ist der Teil, durch den alle Ein- und Ausgaben im Rechner verwaltet werden. Eingaben, das sind für uns primär Tastatur-Eingaben und Klicks mit der Maus oder Änderungen der Mausposition. Alle Eingaben und die Ausgaben auf dem Bildschirm beziehen sich in Fenster( Window)-basierten Betriebssystemen immer auf ein bestimmtes, aktives Fenster auf dem Desktop des Rechners.
Das Programm, dem das zur Zeit aktive Fenster gehört, zum Beispiel das Startfenster einer GUI-Anwendung, wird im Message-Loop-Zustand vom Be- triebssystem informiert, wenn eine Tastatur-Eingabe oder eine Maus-Aktion erfolgt ist bzw. wenn ein eigenes Fenster auf dem Desktop aktiviert oder deaktiviert wurde – dies sind die Meldungen, die das Betriebssystem an das wartende, angemeldete Programm verschickt. Trifft nun eine Meldung beim GUI-Programm ein, dann wird je nach Art der Meldung reagiert.
Dieses Aufdröseln der Meldungen und das Zuordnen der Aktionen wird den GUIProgrammierern heutzutage glücklicherweise von mächtigen Bibliotheksfunktionen abgenommen – Funktionen, die zu verstehen auch geübten Programmierern oftmals schwerfällt. Auch MATLAB hat so ein mächtiges Tool (Interface-Builder), um GUI-Oberflächen zu erzeugen und zu verwalten: GUIDE (Graphical User Interface Design Environment).
| Erscheint lt. Verlag | 1.1.2007 |
|---|---|
| Sprache | deutsch |
| Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
| ISBN-10 | 3-446-41289-1 / 3446412891 |
| ISBN-13 | 978-3-446-41289-7 / 9783446412897 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
Größe: 9,6 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich