ebook img

Programmieren mit MATLAB: Programmiersprache, Grafische Benutzeroberflächen, Anwendungen PDF

353 Pages·2012·30.32 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Programmieren mit MATLAB: Programmiersprache, Grafische Benutzeroberflächen, Anwendungen

43243_Stein_165x240_43243_Stein_RZ 10.08.12 13:30 Seite 1 Ulrich Stein Ulrich Stein Programmieren mit MATLAB Dieses Lehrbuch für Studierende der Ingenieurwissenschaften im Grund studium Der Autor: Programmieren mit B beginnt mit den elementaren Prinzipien der Datenverarbeitung und vermittelt Dr. Ulrich Steinist Professor für A dann anhand der in MATLAB integrierten Programmiersprache systematisch die Maschinenbauinformatik/Physik/ Grundkenntnisse des Programmierens. Darauf bauen Anwendungen auf, vertiefen Mathematik im Heinrich-Blasius- L MATLAB das Wissen und führen in numerische Verfahren von MATLAB ein. Wo für spezielle Institut am Department Maschinen - T Probleme das Basismodul von MATLAB nicht mehr ausreicht, wird für eine inten- bau und Produktion der HAW A sivere Nutzung auf die MATLAB-Toolboxen verwiesen, deren Installation zum Hamburg. M Programmiersprache, Grafische Verständnis dieses Buches aber nicht notwendig ist. Schwerpunkt dieses Lehrbuchs bildet das Programmieren mit MATLAB. Es zeigt, t Benutzeroberflächen, Anwendungen wie man ingenieurwissenschaftliche Probleme mit Hilfe von MATLAB-Programmen i m lösen kann. Dabei helfen zahlreiche anschauliche Beispiele, Abbildungen und Übungsaufgaben. Programmierkennisse anderer Programmiersprachen sind nütz- lich, werden aber nicht vorausgesetzt. n e Für die 4. Auflage wurde die Darstellung einiger numerischer Methoden und des r Rechnens mit MATLAB verbessert und ergänzt. Grundkonstrukte des Program - e mierens und Lernziele werden eingehender behandelt – dies gilt zum Beispiel i für die Produkt- und Summenbildung. m Auf der Website: m www.Stein-Ulrich.de/Matlab/ n MATLAB-Programm-Code zu den Beispielen im Buch a n Lösungen der Aufgaben des Buches r n Weitere Beispiele für MATLAB-Anwendungen g n Studentische MATLAB-Projektarbeiten o n Link-Sammlung zum MATLAB-Umfeld r P 4., überarbeitete und ergänzte Auflage n i e t S www.hanser-fachbuch.de €29,90[D] | €30,80[A] ISBN 978-3-446-43243-7 Stein Programmieren mit MATLAB Bleiben Sie auf dem Laufenden! Hanser Newsletter informieren Sie regel mäßig über neue Bücher und Termine aus den ver- schiedenen Bereichen der Technik. Profitieren Sie auch von Gewinnspielen und exklusiven Leseproben. Gleich anmelden unter www.hanser-fachbuch.de/newsletter Ulrich Stein Programmieren mit MATLAB Programmiersprache, Grafische Benutzeroberflächen, Anwendungen 4., überarbeitete und ergänzte Auflage Mit 163 Bildern, 74 Aufgaben und zahlreichen Listings Fachbuchverlag Leipzig im Carl Hanser Verlag Dr. Ulrich Stein ist Professor für Maschinenbauinformatik/Physik/Mathematik im Heinrich-Blasius- Institut am Department Maschinenbau und Produktion der HAW Hamburg. Trademarks MATLAB* and Simulink* are registered trademarks of The MathWorks, Inc. For MATLAB* and Simulink* product information, please contact: The MathWorks, Inc. 3 Apple Hill Drive Natick, MA, 01760-2098 USA Tel.: 508-647-7000 Fax: 508-647-7001 E-Mail: [email protected] Web: www.mathworks.com Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. ISBN: 978-3-446-43243-7 E-Book-ISBN: 978-3-446-43319-9 Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren), auch nicht für Zwecke der Unterrichtsgestaltung – mit Ausnahme der in den §§ 53, 54 URG genannten Sonderfälle –, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. © 2012 Carl Hanser Verlag München Internet: http://www.hanser-fachbuch.de Lektorat: Dr. Martin Feuchte Herstellung: Dipl.-Ing. Franziska Kaufmann Coverconcept: Marc Müller-Bremer, www.rebranding.de, München Coverrealisierung: Stephan Rönigk Druck und Bindung: Friedrich Pustet KG, Regensburg Printed in Germany Vorwort zur 4. Auflage Dieses Lehrbuch wendet sich an Studentinnen und Studenten der Ingenieurwissenschaften in den ersten Semestern und orientiert sich in der Stoffauswahl an der Vorlesung „Ange- wandte Informatik“ am Department „Maschinenbau und Produktion“ der Hochschule für Angewandte Wissenschaften, am Berliner Tor in Hamburg. Unser Weg durch die Informatik beginnt mit den elementaren Prinzipien der Datenverar- beitung und vermittelt dann anhand der in MATLAB® integrierten Programmiersprache systematisch die Grundkenntnisse des Programmierens. Darauf aufbauend vertiefen An- wendungen das Wissen und führen in die weitergehenden numerischen Verfahren von MATLAB ein. Wo für spezielle Probleme das Basismodul von MATLAB nicht mehr aus- reicht, wird für eine intensivere Nutzung auf die MATLAB-Toolboxen™ verwiesen – de- ren Installation zum Verständnis dieses Buches jedoch nicht notwendig ist. Anwendungsbeispiele, 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. In diesem Buch wird in MATLAB programmiert. Im Vordergrund steht dabei aber nicht primär das Programm MATLAB, sondern die Vermittlung von Programmierkenntnissen, wie sie auch für andere Sprachen nützlich sind. Das bedeutet, dass nicht immer Wert dar- auf gelegt wurde, den Programm-Code in Bezug auf die Stärken von MATLAB zu opti- mieren. Auch ist dies kein Referenz-Handbuch für MATLAB. Die MATLAB-Funktionen werden oft nur so weit vorgestellt, wie es für die aktuelle Aufgabenstellung nötig ist. Für eine vollständige Definition der Funktionen sei auf die MATLAB-Hilfe verwiesen. Warum wird das Programmieren bei uns nicht anhand von C vermittelt? In der Industrie habe ich einige Jahre Programme in C beziehungsweise C++ geschrieben. Nahezu alles, was das Programmiererherz begehrt, ist mit C möglich. Aber diese Sprache enthält auch viele böse Fallen. Um sich einigermaßen fehlerfrei in C ausdrücken zu kön- nen, muss man lange damit gearbeitet haben, besonders wenn man grafische Oberflächen und Grafiken erstellen will oder sich im Bereich COM/OLE tummeln möchte. Die letzten beiden Punkte konnte ich deshalb in meiner zweisemestrigen C-Vorlesung höchstens er- wähnen. Und Hand aufs Herz – nur ein sehr kleiner Teil der Ingenieur-Absolventen hat heutzutage im Beruf noch mit C zu tun. MATLAB jedoch wird in vielen Bereichen einge- setzt, sowohl im Fortgeschrittenen-Studium, zum Beispiel in der Regelungstechnik oder in der Simulation von Motoren, als auch in Industrie und Forschung. 6 _______________________________________________________ Vorwort zur 4. Auflage Vor einigen Jahren habe ich den Versuch gestartet, Programmieren anhand von MATLAB zu lehren, mit ähnlichen Lernzielen und Inhalten wie vorher mit C. Und es hat geklappt. Besser noch – mit MATLAB war vieles einfacher. Ich kam schneller voran und konnte mehr Inhalte bringen. Und es machte Spaß, sowohl den Studenten als auch mir. Dieses Buch soll das Programmieren lehren, aber nicht zum Informatiker ausbilden. Des- halb fehlen Themen wie Automatentheorie, formale Sprachen, Petrinetze, Maschinenspra- che, Netzwerke und auch die beliebten Umwandlungen vom Dezimal- zum Dualsystem. So auf Du und Du mit Prozessor, Speicher oder serieller Schnittstelle sind Ingenieure heute meist nicht mehr. Leider mussten auch die verketteten Listen wegfallen – dazu fehlen in MATLAB die Zeiger. Informationen zu diesen Themen finden Sie in Lehrbüchern zur In- formatik, wie in der „Einführung in die Informatik“ von P. Levi und U. Rembold. Frau Dipl.-Ing. Erika Hotho machte mir vor sechs Jahren den Vorschlag, ein Buch über das Programmieren mit MATLAB zu schreiben. Vielen Dank für ihr Engagement und Dank auch an Frau Mirja Werner M.A. und Herrn Dr. Martin Feuchte, die mich inzwi- schen kompetent betreuen, und an Frau Dipl.-Ing. Franziska Kaufmann, die mir beim Lay- out zur Seite stand. Dank auch an alle Kollegen, die mich zu diesem Projekt ermutigten und mir hilfreiche Tipps gaben, wie Prof. Dr.-Ing. habil. Jürgen Dankert, Prof. Dr.-Ing. Bernd Kost, Prof. Dr.-Ing. Wolfgang Schulz, Prof. Dr. rer. nat. Bernd Baumann, Prof. Dr.- Ing. Thomas Frischgesell. Nicht zu vergessen die Mitarbeiter des Rechenzentrums Berliner Tor, die mir in Fragen der MATLAB-Installation zur Seite standen. Vor sechs Jahren erschien die erste Auflage dieses Buches. Danke für die vielen Zuschrif- ten und für die nahezu einhellig positive Reaktion der Leser. Für die vierte Auflage habe ich weite Bereiche überarbeitet und neue Beispiele für MATLAB-Anwendungen einge- baut, zum Beispiel zu den Themen numerische Integration, Technische Mechanik und Da- tenauswertung. Damit das Buch dadurch nicht noch dicker und teurer wird, habe ich im Gegenzug einige längere Programm-Listings entfernt und auf meine Homepage gepackt. Die im Buch beschriebenen und abgebildeten Abläufe beziehen sich auf die Bedienerober- fläche der Version MATLAB 2010b. Andere MATLAB-Versionen präsentieren sich dem Anwender zum Teil mit einer leicht abgewandelten Oberfläche. Lassen Sie sich deshalb nicht verwirren. Die vorgestellten Programme wurden jedoch mit verschiedenen Versionen von MATLAB 7.0.1 bis MATLAB 2010b getestet. Erweiterungen und die Lösungen der Aufgaben finden Sie auf meiner Homepage www.Stein-Ulrich.de/Matlab/ Ich wünsche den Lesern, dass Ihnen das Programmieren neben der Lernarbeit auch Spaß macht und dass Ihnen möglichst viel vom hier präsentierten Stoff im wirklichen Leben bei Problemlösungen nützt. Und nicht verdrängen oder vergessen: Informatik kann auch Scha- den anrichten. Deshalb sollte jeder, der programmiert, sich überlegen, ob er sein Tun ver- antworten kann und will. Hamburg, im Juni 2012 Ulrich Stein Inhalt 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.............................................................................................29 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.......................................................................................40 2.1.6 Ablaufprotokoll........................................................................................................41 2.1.7 MATLAB-Arbeitsverzeichnis..................................................................................42 2.1.8 Zusammenfassung....................................................................................................44 2.1.9 Aufgaben...................................................................................................................45 2.2 Ein- und Ausgabe....................................................................................................................46 2.2.1 I/O-Kanäle.................................................................................................................46 2.2.2 Einfache Ausgabe.....................................................................................................46 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 8 _____________________________________________________________________ Inhalt 2.2.7 Aufgaben. ..................................................................................................................52 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 Summen- und Produkt-Bildung................................................................................69 2.5.4 Verschachtelte Schleifen..........................................................................................71 2.5.5 Wiederholschleife.....................................................................................................74 2.5.6 while-Beispiel: e-Funktion.......................................................................................76 2.5.7 Schleifen verlassen....................................................................................................78 2.5.8 Zusammenfassung.....................................................................................................79 2.5.9 Aufgaben. ..................................................................................................................79 2.6 Felder......................................................................................................................................81 2.6.1 Matrizen....................................................................................................................81 2.6.2 Matrix-Beispiel: sinPlot...........................................................................................84 2.6.3 Matrizen erzeugen.....................................................................................................86 2.6.4 Der :-Operator und linspace.....................................................................................87 2.6.5 Analyse von Feldern.................................................................................................89 2.6.6 meshgrid....................................................................................................................91 2.6.7 Matrix-Operatoren.....................................................................................................93 2.6.8 Verknüpfungen..........................................................................................................95 2.6.9 Cell-Arrays.................................................................................................................95 2.6.10 Zusammenfassung.....................................................................................................97 2.6.11 Aufgaben. ..................................................................................................................98 2.7 Grafik......................................................................................................................................99 2.7.1 Grafiktypen...............................................................................................................99 2.7.2 2D-Grafik..................................................................................................................99 2.7.3 3D-Grafik................................................................................................................106 2.7.4 Mehrere Plots in einer figure..................................................................................109 2.7.5 3D-Kurven..............................................................................................................110 2.7.6 Grafik-Handle.........................................................................................................111 2.7.7 Zusammenfassung..................................................................................................114 2.7.8 Aufgaben.................................................................................................................114 2.8 Strukturen. ............................................................................................................................115 2.8.1 Strukturierte Daten..................................................................................................115 2.8.2 Datenfelder..............................................................................................................116 2.8.3 struct.........................................................................................................................117 Inhalt ______________________________________________________________________ 9 2.8.4 struct-Beispiel: person............................................................................................119 2.8.5 struct ändern...........................................................................................................120 2.8.6 struct-Beispiel: CAD-Drahtmodell. ........................................................................122 2.8.7 Objektorientierte Programmierung. ........................................................................125 2.8.8 Zusammenfassung..................................................................................................130 2.8.9 Aufgaben.................................................................................................................130 2.9 Dateien. .................................................................................................................................131 2.9.1 Dateizugriff.............................................................................................................131 2.9.2 Dateien lesen..........................................................................................................132 2.9.3 Dateien schreiben...................................................................................................133 2.9.4 Excel-Dateien.........................................................................................................134 2.9.5 MAT-Files...............................................................................................................135 2.9.6 Zusammenfassung..................................................................................................136 2.9.7 Aufgaben.................................................................................................................136 2.10 Strings. ..................................................................................................................................137 2.10.1 Character-Arrays....................................................................................................137 2.10.2 String-Funktionen...................................................................................................138 2.10.3 String-Evaluation....................................................................................................140 2.10.4 Zusammenfassung..................................................................................................141 2.10.5 Aufgaben.................................................................................................................142 3 GUI.........................................................................................................................144 3.1 Grafische Benutzeroberfläche..............................................................................................144 3.1.1 Das große Warten – Callbacks. ..............................................................................144 3.1.2 Einführung in GUIDE............................................................................................146 3.1.3 Zusammenfassung..................................................................................................149 3.1.4 Aufgaben.................................................................................................................149 3.2 GUI-Elemente........................................................................................................................150 3.2.1 Fenster und Maus...................................................................................................150 3.2.2 GUIDE-M-File.......................................................................................................151 3.2.3 Text-Ausgabefeld...................................................................................................154 3.2.4 Text-Eingabefeld....................................................................................................157 3.2.5 GUI-Rückgabewert................................................................................................159 3.2.6 GUI-Grafikobjekt...................................................................................................163 3.2.7 Pop-up-Menü..........................................................................................................164 3.2.8 Zusammenfassung..................................................................................................167 3.2.9 Aufgaben.................................................................................................................167 3.3 GUI-Menüs...........................................................................................................................168 3.3.1 Menu Bar.................................................................................................................168 3.3.2 Context Menu.........................................................................................................172 3.3.3 Zusammenfassung..................................................................................................174 3.3.4 Aufgaben.................................................................................................................174 3.4 Standarddialoge.....................................................................................................................174 3.4.1 Standarddialog-Typen............................................................................................174 3.4.2 Aufgaben.................................................................................................................177 3.5 Callback-Interaktionen...........................................................................................................178

Description:
Dieses Lehrbuch für Studierende der Ingenieurwissenschaften im Grundstudium vermittelt zunächst elementare Prinzipien der Datenverarbeitung und anschließend anhand der in MATLAB integrierten Programmiersprache systematisch die Grundkenntnisse des Programmierens. Darauf bauen Anwendungen auf, vert
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.