Einführung in Matlab - etools.fernuni.chetools.fernuni.ch/matlab/matlab1/de/matlab.pdf ·...

download Einführung in Matlab - etools.fernuni.chetools.fernuni.ch/matlab/matlab1/de/matlab.pdf · Matlab-Ausdrücke wie Anweisungen, Funktionen und andere Code-Bestandteile werden im Text

If you can't read please download the document

Transcript of Einführung in Matlab - etools.fernuni.chetools.fernuni.ch/matlab/matlab1/de/matlab.pdf ·...

  • Einfhrung in Matlab

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 1

    Inhaltsverzeichnis

    Anleitung ...................................................................................................................................................... 4Voraussetzungen .................................................................................................................................. 7Bedienungshinweise ............................................................................................................................. 9

    Vorbereitung ........................................................................................................................................... 11Installation von Matlab ...................................................................................................................... 12Herunterladen der notwendigen Materialien ..................................................................................... 13Konfiguration von Matlab ................................................................................................................. 14

    Lektion 1: Grundlagen von Matlab ........................................................................................................... 17Wozu kann man Matlab gebrauchen? ................................................................................................... 18

    Einige Beispiele im Direktmodus ...................................................................................................... 20Demonstrationsbeispiele von Matlab ................................................................................................. 23Beispiel aus der psychologischen Forschungspraxis ......................................................................... 24

    Die Benutzeroberflche .......................................................................................................................... 26Darstellungsmglichkeiten des Desktops .......................................................................................... 27Das Command Window ................................................................................................................. 29Der Workspace ............................................................................................................................... 31Der Current Directory-Browser ..................................................................................................... 33Die Command History ................................................................................................................... 34Benutzung des Hilfe-Systems ............................................................................................................ 35Zusammenfassung .............................................................................................................................. 37

    Zahlen und Variablen in Matlab ............................................................................................................ 38Reprsentation von Zahlen ................................................................................................................ 39Variablen ............................................................................................................................................ 40Zusammenfassung .............................................................................................................................. 42

    Reprsentation von Daten 1: Skalare, Vektoren und Matrizen ............................................................. 43Skalare ................................................................................................................................................ 44Vektoren ............................................................................................................................................. 45Matrizen ............................................................................................................................................. 46Zusammenfassung .............................................................................................................................. 48

    Matrizenmanipulation ............................................................................................................................ 49Matrizen zusammenfgen .................................................................................................................. 50Vervielfltigung von Matrizen ........................................................................................................... 51Erzeugen spezieller Matrizen ............................................................................................................. 52Umformen von Matrizen ................................................................................................................... 53Aufgabe 1: Erstellen einer komplexen Datenmatrix ......................................................................... 54Zusammenfassung .............................................................................................................................. 56

    Mathematische Operatoren und Funktionen .......................................................................................... 57Operatoren .......................................................................................................................................... 58Funktionen .......................................................................................................................................... 59Aufgabe 2: Umsetzen einer mathematischen Formel ........................................................................ 60Aufgabe 3: berprfung eines magischen Quadrates ....................................................................... 61Zusammenfassung .............................................................................................................................. 62

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 2

    Testfragen ............................................................................................................................................... 63Glossar .................................................................................................................................................... 65

    Lektion 2: Programmieren in Matlab ........................................................................................................ 66m-Files: Skripte und Funktionen ........................................................................................................... 67

    Der Editor/Debugger .......................................................................................................................... 68Programmieren von Skripten ............................................................................................................. 70Aufgabe 4: Programmieren eines Skriptes ........................................................................................ 72Programmieren von Funktionen ........................................................................................................ 74Spezialflle ......................................................................................................................................... 77Zusammenfassung .............................................................................................................................. 79

    Programm-Kontrollstrukturen: Schleifen ............................................................................................... 80Die for-Schleife .................................................................................................................................. 81Die while-Schleife ............................................................................................................................. 82Abbruch von Schleifen mit break ...................................................................................................... 83Aufgabe 5: Gauss-Funktion fr einen Vektor ................................................................................... 84Vektorisierung von Schleifen ............................................................................................................ 85Zusammenfassung .............................................................................................................................. 86

    Programm-Kontrollstrukturen: bedingte Verzweigungen ...................................................................... 87Die Verzweigungsstruktur if-elseif-else ............................................................................................ 88Die switch-case-Struktur .................................................................................................................... 89Vergleichsoperatoren und logische Verknpfungen .......................................................................... 91Aufgabe 6: Standardisierungsfunktion .............................................................................................. 93Zusammenfassung .............................................................................................................................. 94

    Reprsentation von Daten 2: Zeichenketten (Strings) ........................................................................... 95Strings erzeugen und zusammenfgen .............................................................................................. 96Strings untersuchen und vergleichen ................................................................................................. 97Zusammenfassung .............................................................................................................................. 98

    Testfragen ............................................................................................................................................... 99Glossar .................................................................................................................................................. 100

    Lektion 3: Arbeiten mit externen Dateien ............................................................................................... 101Datenimport .......................................................................................................................................... 102

    Einlesen von Daten aus externen Dateien: interaktiv ...................................................................... 103Einlesen von Daten aus externen Dateien: programmiert ............................................................... 104Beispiel: Routine zum Einlesen von Daten aus externer Datei ....................................................... 106Zusammenfassung ............................................................................................................................ 110

    Reprsentation von Daten 3: Cell Arrays ............................................................................................ 111Datenreprsentation in Cell Arrays ................................................................................................. 112Erzeugen und referenzieren von Cell Arrays .................................................................................. 113Zweites Beispiel zum Einlesen von Daten aus externer Datei ........................................................ 115Zusammenfassung ............................................................................................................................ 116

    Reprsentation von Daten 4: Structure Arrays .................................................................................... 117Reprsentation von Daten in Structure Arrays ................................................................................ 118Anwendungsbeispiel ........................................................................................................................ 119Zusammenfassung ............................................................................................................................ 120

    Eigenes Datenverarbeitungsprojekt ...................................................................................................... 121

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 3

    Datenbasis ........................................................................................................................................ 122Grobstruktur ..................................................................................................................................... 123Datensatz EyeData Processing ......................................................................................................... 124Aufgabe P1: Einlesen der Daten ..................................................................................................... 125

    Interaktion mit dem Benutzer .............................................................................................................. 128Auswahl von Dateien und Verzeichnissen ...................................................................................... 129Mustercode: Alle Dateien aus Verzeichnis whlen ......................................................................... 132Weitere Benutzereingaben ............................................................................................................... 134Aufgabe P2: Benutzereingaben ....................................................................................................... 136Zusammenfassung ............................................................................................................................ 137

    Schreiben von Daten in externe Dateien ............................................................................................. 138Grundlegende Funktionen zum Schreiben in externen Dateien ...................................................... 139Aufgabe P3: Daten speichern .......................................................................................................... 141Zusammenfassung ............................................................................................................................ 142

    Glossar .................................................................................................................................................. 143Lektion 4: Verarbeitung und grafische Darstellung von Daten ............................................................... 144

    Daten selektieren: Logisches Indizieren und die find-Funktion ...................................................... 145Logische Indizierung ........................................................................................................................ 146Die find-Funktion ............................................................................................................................. 147Eine hilfreiche Funktion: subM ....................................................................................................... 148Zusammenfassung ............................................................................................................................ 149

    Grundlegende Statistikfunktionen ........................................................................................................ 150Deskriptivstatistik ............................................................................................................................. 151Korrelation und Kovarianz .............................................................................................................. 153Zufallsdaten mit bestimmten Verteilungen ...................................................................................... 154Aufgabe P4: Projektarbeit - Verarbeitung der Daten ...................................................................... 156Zusammenfassung ............................................................................................................................ 157

    Grafikgrundlagen: Figuren und Achsensysteme .................................................................................. 158Erzeugung und Manipulation von Figuren ...................................................................................... 159Eigenschaften von Figuren .............................................................................................................. 161Achsensysteme (Axes) ..................................................................................................................... 162Multiple Achsensysteme .................................................................................................................. 163Zusammenfassung ............................................................................................................................ 164

    Grafikwerkzeuge .................................................................................................................................. 165Die plot-Funktion ............................................................................................................................. 166Balkengrafiken ................................................................................................................................. 170Weitere Grafik-Funktionen kurz demonstriert ................................................................................. 172Grafiken beschriften und erweitern ................................................................................................. 173Aufgabe P5: Projektarbeit - Grafische Darstellung der Daten ........................................................ 177Zusammenfassung ............................................................................................................................ 179

    Schlussbemerkungen ............................................................................................................................ 180

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 4

    AnleitungWas wird durch dieses Lernprogramm abgedeckt?

    Dieser Einfhrungskurs soll eine praxisnahe Einfhrungin die Arbeit mit dem Programm Matlab der Firma The MathWorks bieten, mit besonderemAugenmerk auf die Aspekte, die fr die Verarbeitung von Daten im Rahmen psychologischerForschungsttigkeit relevant sind. Matlab wird hufig bei Experimenten eingesetzt, die mit psychophysischenMethoden wie Elektroenzephalographie (EEG), Augenbewegungsregistrierung (eye tracking) oderHautleitfhigkeitsmessungen (GSR - galvanic skin response) arbeiten. Grundstzlich ist Matlab bei derAuswertung grosser, hufig automatisiert erfasster Datenmengen sehr ntzlich, wie dies z.B. auch bei Logfile-Analysen oder Internet-Experimenten der Fall ist.

    Wozu Matlab?Matlab ist eine Programmiersprache, die in der psychologischen Forschungsttigkeit vielseitige Anwendungfindet. Sie eignet sich besonders fr die Analyse der erzielten Daten, kann aber auch fr die Programmierungcomputergesteuerter Experimente eingesetzt werden. Ein besonderer Vorteil ist, dass Matlab im Gegensatz zuden meisten anderen Programmiersprachen als Interpreter arbeitet: Eingegebene Befehle und Programmewerden sofort ausgefhrt, ohne dass man vorher in einem zustzlichen Schritt das Programm zuerst kompilierenmuss. Auf diese Weise kann man z.B. unkompliziert ausprobieren, wie die Syntax sein muss, damit derRechner das tut, was man von ihm will. Die so erprobten Befehle kann man dann per copy-and-paste inProgrammdateien bernehmen.

    Umfang dieses LernprogrammsMatlab ist ein sehr umfassendes Programmpaket, und die meisten Anwender nutzen nur einen kleinen Teildavon. Dank einer sehr guten integrierten Dokumentation und Hilfe-Funktion ist es aber relativ einfach, weitereFunktionen dazuzulernen, wenn man die Grundzge einmal verstanden hat.In diesem Sinne beschrnkt sich dieses Lehrmittel auf die Grundfunktionalitt von Matlab, also Matrizen-basierte Datenverarbeitung und Visualisierung.

    http://www.mathworks.com/http://www.mathworks.com/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 5

    Die Funktionalitt von SimuLink (Simulationsprogramm) wird nicht abgedeckt. Ebensowenig kann aufFunktionen von spezialisierten Toolboxen (neural network toolbox, wavelet toolbox etc.) eingegangen werden,welche im Rahmen der psychologischen Forschung kaum zur Anwendung kommen. Vielmehr soll eine Basisvermittelt werden, von der ausgehend es mglich sein sollte, sich selbststndig weitere Kenntnisse anzueignen.

    bersicht ber die Lerninhalte

    Wozu kann man Matlab gebrauchen?

    Arbeiten mit der Benutzeroberflche

    Grundlegendes: Zahlen, Datentypen, Operatoren, Funktionen etc.

    Programmierung von Skripten und Funktionen

    Programmkontrollstrukturen: Schleifen, Verzweigungen

    Daten einlesen, bearbeiten und in Dateien schreiben

    Interaktion mit dem Benutzer

    Statistikfunktionen

    Grafische Darstellungen

    Die Lerninhalte knnen immer wieder direkt in kurzen bungsaufgaben umgesetzt werden; zustzlich stehenSelbsttestfragen zur Verfgung, um den Lernfortschritt durch berprfung des Gelernten zu frdern.Zudem erarbeiten Sie sich im Rahmen des Kurses ein etwas grsseres Programmprojekt, welches typischfr Anwendungen in der psychologischen Forschung ist: Einlesen und Zusammenfgen von Daten ausmehreren Datenstzen, Durchfhren von Berechnungen mit diesen Daten, Abspeichern der Resultate einemfr die Weiterbearbeitung (z.B. mit SPSS oder Statistica) geeigneten Format sowie grafische Darstellung undVisualisierung der Resultate.

    Entwicklung

    Dieses Lehrmittel wurde im Rahmen des Projektes edulap entwickelt.

    Dr. phil. Roman von WartburgInhalt, didaktisches Konzept, technische Umsetzung, bersetzung, Animation

    Sarah Steinbacher, dipl. Designerin FHGrafisches Design

    http://www.edulap.ch/http://www.edulap.ch/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 6

    Radka Wittmer, M.Ed.Beratung Mediendidaktik

    Stephanie Schtze, Dipl. psych.Beratung Usability Evaluation

    Jol FislerUmsetzung Grafikdesign

    UntersttzungDieses Projekt wurde durch folgende Institutionen untersttzt:

    Lizenz/Copyright

    Einfhrung in Matlab von Roman von Wartburg/Universitre Fernstudien Schweiz ist untereiner Creative Commons Attribution/Non-Commercial/Share Alike 2.5 Switzerland License lizenziert.Das bedeutet, Sie drfen das Werk vervielfltigen, verbreiten und ffentlich zugnglich machen, sowieBearbeitungen des Werkes anfertigen. Die Bedingungen dafr lauten: Namensnennung, keine kommerzielleNutzung, Weitergabe unter gleichen Bedingungen.Weitere Informationen

    Implementierung und DistributionDieses Tutorial wurde mit eLML umgesetzt. Der komplette eLML-Quellcode ist in den Lernpaketen enthalten,die hier heruntergeladen werden knnen:

    ZIP-Archiv der HTML-VersionFalls Sie keinen permanenten Internetzugang haben, knnen Sie dieses Archiv auf Ihre Festplatte extrahierenund dann lokal mit Ihrem Webbrowser ffnen.

    Lernpaket im IMS/CP-FormatDiese Version kann auf Lernplattformen wie OLAT, Moodle oder ILIAS verwendet werden.

    http://creativecommons.org/licenses/by-nc-sa/2.5/ch/http://creativecommons.org/licenses/by-nc-sa/2.5/ch/http://creativecommons.org/licenses/by-nc-sa/2.5/ch/http://www.elml.ch/http://etools.fernuni.ch/matlab/matlab_html.ziphttp://etools.fernuni.ch/matlab/matlab_html.ziphttp://etools.fernuni.ch/matlab/matlab_de_ims.ziphttp://etools.fernuni.ch/matlab/matlab_de_ims.zip

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 7

    Voraussetzungen

    VorkenntnisseFolgende Vorkenntnisse sind fr das Bearbeiten dieses Einfhrungskurses hilfreich:

    Grundlegende Erfahrung in der Arbeit mit Computern ist unabdingbar. Wer es gewohnt ist, mitProgrammpaketen wir z.B. SPSS, Excel oder E-Prime zu arbeiten, sollte mit den Basics von Matlab, wiesie in diesem Kurs gelehrt werden, keine nennenswerten Probleme haben.

    Statistisch-methodisches Grundlagenwissen auf Bachelor-Niveau der Psychologie ist vor allemhilfreich, um die praktischen Beispiele nachvollziehen zu knnen. Darber hinausgehendemathematischen Vorkenntnisse sind nicht ntig.

    Vorkenntnisse in der Computerprogrammierung sind zwar sehr hilfreich, aber nicht zwingend.

    ZielsetzungWir haben versucht, diesen Kurs so zu gestalten, dass sowohl Leute mit Programmiererfahrung alsauch EinsteigerInnen davon profitieren knnen. Realistisch betrachtet wird sich die Zielsetzung und dasAnspruchsniveau fr diese beiden Gruppen allerdings unterscheiden.

    Wer Erfahrung mit anderen modernen Programmiersprachen hat und daher bereits mit der Denkweiseund den grundlegenden Konzepten der Programmierung vertraut ist, sollte den Kurs ohne grosseSchwierigkeiten durcharbeiten knnen. Damit sollte man anschliessend in der Lage sein, selbststndigMatlab-Programme von Grund auf neu zu erstellen. Die Grundstrukturen von Matlab unterscheiden sichnicht wesentlich von denjenigen anderer (prozeduraler) Sprachen.

    Fr Leute mit gar keinen oder nur rudimentren Programmierkenntnisse wird dieser Kurs relativanspruchsvoll sein. Wir gehen davon aus, dass diese Gruppe nach dem Kurs in der Lage ist, vorhandeneProgramme zu verstehen und modifizieren zu knnen, oder einfache Routinen, die den im Kursbearbeiteten Beispielen hnlich sind, zu schreiben.

    Hard- und SoftwareDa dieser Kurs als wesentlichen Teil auch praktische bungen umfasst, ist es unabdingbar, das Matlab-Programmpaket auf demselben Computer installiert zu haben. Matlab ist verfgbar fr Macintosh, Windows,verschiedene Linux-Distributionen und Solaris (UNIX-Betriebssystem, frher SunOS).

    Matlab ist eine kommerzielle Software und muss kuflich erworben werden. EineLizenz fr Studierende wird fr USD 99 von Mathworks angeboten. Von einigenInstitutionen (z.B. Universitt Bern) wird Matlab fr Mitarbeitende und Studierendegratis zur Benutzung angeboten. Bitte wenden Sie sich an die Informatikabteilung IhrerInstitution.

    Die allermeisten handelsblichen Computer, die nicht lter als 5-8 Jahre sind, haben gengend Ressourcenfr die Arbeit mit Matlab. Falls Sie im Zweifel sind, ob dies bei Ihnen der Fall ist, konsultieren Sie bitte dieAngaben von Mathworks zu den Systemvoraussetzungen.Hinweise zur Installation von Matlab finden Sie im Abschnitt Installation.

    http://www.mathworks.ch/store/http://www.mathworks.com/support/sysreq/current_release/index.html

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 8

    Anforderung an den Web-BrowserIn diesem Kurs werden gewisse Inhalte in Pop-up-Fenstern angezeigt. Damit dies mglich ist, drfen die Pop-up-Fenster fr die Website bzw. die Lernplattform, auf der dieser Kurs luft, nicht gesperrt sein. Zum Testklicken Sie hier. Wenn danach kein neues Fenster erscheint, sind Pop-up-Fenster gesperrt, und sie mssendies in Ihren Browser-Einstellungen korrigieren.

    http://etools.fernuni.ch/matlab//matlab1/de/text/javascript:popupWindow('../../../matlaba/de/html/solutions_popuptest.html', 'solutions', 400)

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 9

    Bedienungshinweise

    Der Kurs ist vom Stil her als hands-on-Kurs oder gefhrtes learning by doing zu verstehen: Alles, wasvermittelt wird, soll sogleich im parallel laufenden Matlab-Programm selbst ausprobiert und umgesetzt werden.So lernt man am Effizientesten.

    Alle Textbereiche, welche zu konkreten Aktivitten mit Matlab auffordern, sind grn hinterlegt undmit diesem Icon gekennzeichnet.

    Alle Anweisungen zum Eintippen im Command Window von Matlab werden wie folgt dargestellt(die Eingabeaufforderung >> muss dabei nicht eingegeben werden):>> a = sin(2)

    Erluterungen sind in Kursivschrift notiert und werden nicht mit eingegeben:

    >> 23.5 * pi pi ist intern vordefiniert

    Wichtige Informationen, Merkpunkte und Zusammenfassungen werden in einer solchenBox angezeigt und mit dem entsprechenden Icon gekennzeichnet.

    Weitere Hinweis-IconsBestimmte Bereiche im Text werden mit weiteren Icons markiert, die folgende Bedeutung haben:

    Hinweis: Damit werden ergnzende Informationen gekennzeichnet.

    Hilfe: Bezeichnet Hinweise auf weiterfhrende Informationen im Matlab-Hilfe-System.

    Popup: Werden so gekennzeichnete Links angeklickt, ffnet sich eine Box oder ein neues Fenster mitden Inhalten.

    Besondere SchreibweisenMatlab-Ausdrcke wie Anweisungen, Funktionen und andere Code-Bestandteile werden im Text mit folgenderSchrift hervorgehoben:matlab_codeAufrufe von Matlab-Menufunktionen werden wie im folgenden Beispiel notiert:Desktop > Desktop Layout > DefaultDies entspricht also folgendem Bedienungsvorgang:

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 10

    Weitere FeaturesIn diesem Kurs stehen Ihnen untersttzend zwei weitere Funktionen zur Verfgung. Diese knnen Sie ber diezustzlichen Menupunkte unter der Hauptnavigation (fr die HTML-Version) oder ber die Fusszeile (Versionin einem Learning Management System wie OLAT) aufrufen.

    PDF-Version: Sie knnen den gesamten Kurs als PDF-Dokument herunterladen. Dieses knnen Sieauch ohne Internetverbindung lesen, oder sich Teile davon ausdrucken.

    Befehlsliste: Darin sind alle verwendeten Befehle aufgelistet. Diese Liste ffnet sich in einem neuen,schmalen Fenster, das Sie neben den anderen Fenstern anordnen knnen.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 11

    VorbereitungDieser Abschnitt beschreibt die vorbereitenden Schritte, die fr das Bearbeiten dieses Kurses notwendig sind:

    Installation von Matlab auf Ihrem Computer

    Herunterladen und Ablegen der notwendigen Materialien wie Beispieldateien, Aufgaben, Materialienund Musterlsungen

    Konfiguration von Matlab

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 12

    Installation von Matlab

    Welche Version von Matlab brauche ich?Die Version 7.2 / R2006a oder hher wird empfohlen; auch das Arbeiten mit lteren Versionen ist mglich,nur knnen sich einige Details in der Bedienung der Benutzeroberflche unterscheiden. Grundstzlich istdas Arbeiten insbesondere dank sinnvoller Erweiterungen besonders des Editors mit den neueren Versionenbedeutend angenehmer.Matlab muss kuflich erworben werden; fr Studierende bietet Mathworks Lizenzen fr USD 99 an. Voneinigen Institutionen (z.B. Universitt Bern) wird Matlab fr Mitarbeitende und Studierende gratis zurBenutzung angeboten. Bitte wenden Sie sich an die Informatikabteilung Ihrer Institution.

    Falls Matlab noch nicht auf Ihrem Computer installiert ist, tun Sie dies jetzt. Folgen Sie dazu denAnleitungen des Installationsprogrammes.

    Wichtig: Bei manchen Versionen von Matlab werden Sie whrend der Installation aufgefordert zu entscheiden,was Sie alles installieren wollen: Das Matlab-Programm, die Dokumentation oder beides. Whlen Siebeides, denn die Dokumentation ist ein unverzichtbares Hilfsmittel bei der Arbeit mit diesem komplexenProgrammpaket.

    http://www.mathworks.com/store/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 13

    Herunterladen der notwendigen Materialien

    Zur Bearbeitung dieses Kurses bentigen Sie verschiedene Dateien wie Codebeispiele, Musterlsungen oderDatenfiles zur Erprobung selbst geschriebener Programme. Diese mssen Sie zuerst auf Ihren Computerherunterladen.

    Bitte laden Sie die bentigten Dateien, die als komprimierte ZIP-Dateien vorliegen, jetzt herunter, wiedies im folgenden beschrieben ist:

    Beispiele und MusterlsungenDiese Programm-Dateien finden Sie in der Datei examples.zip. Bitte diese Inhalte anschliessend in ein neuesVerzeichnis entpacken , z.B. My Documents\matlab-kurs\m\ oder d:\m\. Es ist sinnvoll, sichdas Verzeichnis zu merken oder zu notieren, da wir dieses gleich anschliessend in Matlab konfigurieren mssen(vgl. hier).Wichtig: Dieses Verzeichnis wird auch Ihr Arbeitsverzeichnis fr die selbst verfassten Programme sein.

    DatenEinige Beispiele und bungsaufgaben bentigen Datenfiles, welche in der Datei data.zip zusammengefasstsind. Entpacken Sie diese bitte an einen anderen Ort, z.B. My Documents\matlab-kurs\data\.

    http://etools.fernuni.ch/matlab//matlab1/de/multimedia/examples.ziphttp://etools.fernuni.ch/matlab//matlab1/de/multimedia/data.zip

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 14

    Konfiguration von Matlab

    Einige Einstellungen sind notwendig bzw. hilfreich, um Matlab einsatzfhig zu machen:

    die Einstellung des Suchpfades fr die erstellten Programme

    das Konfigurieren eines allflligen Proxy-Servers fr den Internetzugang

    Der Tabulatorabstand des Editors kann den eigenen Wnschen angepasst werden.

    Diese Schritte knnen Sie mit den folgenden Anleitungen nachvollziehen. Anschliessend sind Sie bereit, dieArbeit mit Matlab zu beginnen.

    Nehmen Sie folgende Einstellungen vor, falls dies nicht bereits so konfiguriert ist:

    PfadeinstellungMatlab muss mitgeteilt werden, wo es nach Programmen suchen soll. Die Pfade fr die internen/mitgeliefertenFunktionen und Toolboxen sind bereits konfiguriert, aber wir mssen dem Programm den Speicherort der selbsterstellten Programme (die sogenannten m-Files) mitteilen. In unserem Fall ist dies der Ort, wohin Sie dieBeispielprogramme aus der heruntergeladenen ZIP-Datei gespeichert haben (siehe Abschnitt Materialien,hier). Gehen Sie wie folgt vor:

    Menupunkt File > Set Path anwhlen

    Schaltflche Add Folder... anklicken

    Im Datei-Browser das entsprechende Verzeichnis suchen und anwhlen, mit OK besttigen

    Save und Close bettigen

    Die Dialogbox zur Einstellung des Pfades fr m-Files

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 15

    Proxy-Server fr den InternetzugangFr gewisse Funktionen des Hilfe-Systems ist ein Internetzugang notwendig. Falls sich Ihr Computer in einemlokalen Netzwerk befindet, der mit einem sogenannten Proxy-Server arbeitet, muss dies Matlab mitgeteiltwerden. Wenden Sie sich an den Informatik-Support, wenn Sie nicht wissen, ob berhaupt ein Proxy-Serververwendet wird, oder seine Adresse nicht kennen.Tip: Es ist die gleiche Adresse, die auch in Ihrem Internet-Browser als Proxy-Server eingestellt ist.Diese Einstellmglichkeiten finden Sie unter dem Menupunkt File > Preferences... (siehe untenstehendeAbbildung). Falls kein Proxy-Server vorhanden ist, entfernen Sie den Haken im Feld Use a proxy server toconnect to the Internet. Andernfalls nehmen Sie die Einstellungen gemss folgender Abbildung vor. Anstellevon proxy.unibe.ch / 80 muss Adresse und Port des Proxy-Servers Ihres Netzwerkes eingegeben werden.

    Einstellungen fr den Proxy-Server

    Tabulatorabstand fr den EditorDiese Einstellung beinflusst die Darstellung des Programmcodes im Editor und bewirkt eine mehr oder wenigerkompakte Darstellung Ihrer Programme. Ein Wert von 2 hat sich fr die meisten Benutzer als ideal erwiesen,ist aber Geschmackssache (s. Lektion 2, Abschnitt m-Files -> Editor/Debugger) .Sie knnen dies wie folgt einstellen: Menupunkt File > Preferences... anwhlen, dann die Einstellung gemssfolgender Abbildung vornehmen; es ist zweckmssig, Tab size und Indent size auf den gleichen Wert zusetzen.

    http://etools.fernuni.ch/matlab//matlab3/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 16

    Tabulatoreinstellung fr den Editor

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 17

    Lektion 1: Grundlagen von MatlabIn dieser Lerneinheit lernen Sie, was fr Mglichkeiten Matlab berhaupt bietet und wie man mitder Benutzeroberflche von Matlab arbeitet. Dazu werden grundlegende Fakten zur Reprsentation undManipulation von Daten vermittelt.

    Lernziele

    Sie erhalten einen Einblick in die Mglichkeiten von Matlab Sie kennen die verschiedenen Bereiche der Benutzeroberflche Sie knnen diese an Ihre Bedrfnisse anpassen Sie knnen im Direktmodus Berechnungen anstellen Sie kennen die grundlegende Methode von Matlab, Daten zu reprsentieren (Skalare, Vektoren,

    Matrizen)

    Sie knnen diese Daten manipulieren und mathematische Funktionen und Operationen darauf anwenden

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 18

    Wozu kann man Matlab gebrauchen?Im folgenden erhalten Sie eine bersicht ber die Mglichkeiten von Matlab. Sollten Sie bereits wissen,was man alles mit Matlab anstellen kann, knnen Sie diese Abschnitte auch berspringen und direkt zu DieBenutzeroberflche gehen.Matlab steht fr Matrix laboratory. Es handelt sich dabei um eine Programmiersprache und -umgebung, die

    mit speziellen Datentypen (insbesondere eben Matrizen 1) arbeitet.

    Wann bietet Matlab Vorteile?Kleine, nur einmal zu erfassende und auszuwertende Datenmengen lassen sich problemlos mitTabellenverarbeitungsprogrammen wie MS Excel oder OpenOffice Calc vorverarbeiten und dann inStatistiksprogrammen wie Statistica oder SPSS inferenzstatistisch auswerten. Dafr lohnt sich der Einsatz vonMatlab kaum.Matlab wird in folgenden Fllen interessant:

    Wenn es sich um die Auswertung grsserer, hufig automatisiert erfasster Datenmengen handelt, wie sie

    u.a. auch bei der Durchfhrung von psychophysiologischen Experimenten (EEG 2, fMRI 3, Registrierungvon Augenbewegungen, Hautleitfhigkeit u..) oder bei Internet-Experimenten und Logfile-Analysenetc. anfallen. Jeden neu erfassten Datensatz in der Tabellenverarbeitungssoftware manuell zu bearbeitenund dann in ein Statistikprogramm zu exportieren wird dann schnell sehr aufwendig, sodass eineAutomatisierung mittels eines Matlab-Programmes lohnend wird.

    Die Arbeit mit programmierten Auswertungsroutinen ist auch dann effizienter, wenn die Auswertungmehrmals verndert werden muss und dann der ganze Datensatz immer wieder neu durchgerechnetwerden soll.

    Matlab bietet zudem umfangreiche Grafikfunktionen, spezielle Statistikfunktionen und weitereinteressante Features, die in den gngigen Softwarepaketen nicht oder in zu wenig flexibler Formvorhanden sind.

    Es lassen sich benutzerfreundliche Bedieneroberflchen programmieren, die die Auswertung von Datenauch Mitarbeitenden erlaubt, die weniger gut ausgebildete Computerkenntnisse besitzen.

    Auswertungsprogramme kann man natrlich auch mit anderen Sprachen wie Visual Basic, C++ oderJava schreiben. Matlab ist aber speziell auf die Verarbeitung, Auswertung und grafische Darstellungnumerischer Daten ausgelegt. Ein besonderer Vorteil ist, dass Matlab im Gegensatz zu den meisten anderenProgrammiersprachen als Interpreter bedient werden kann: Man kann Befehle einzeln eingeben und sofortausfhren lassen, und auf diese Weise ausprobieren, wie die Syntax sein muss, damit der Computer das tut,was man von ihm will. Die so erprobten Befehle kann man dann per copy-and-paste in Programmdateienbernehmen. Auch um ein Programm auszufhren, muss es nicht vorher kompiliert werden, wie das inanderen Sprachen notwendig ist.

    Bemerkung fr Programmierer: Trotz dieser bedienungsfreundlichen Oberflche laufen Matlab-Programme fast genauso schnell wie solche, die mit kompilierten Programmiersprachen wie C++ oder Pascal erstellt wurden. Zudem besteht auch die Mglichkeit, ein Matlab-Programm zukompilieren und als stand alone-Programm laufen zu lassen.

    1 Die wichtigste Art der Reprsentation von Daten in Matlab. In der Mathematik ist eine Matrix (Plural: Matrizen) eine Tabelle von Zahlen

    oder anderen Gren. Matrizen unterscheiden sich von einfachen Tabellen dadurch, dass mit ihnen gerechnet werden kann. Mit dem

    Ausdruck Matrix ist meist eine zwei- oder hherdimensionale Matrix gemeint (vgl. Skalar, Vektor).

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 19

    Beispielhafter Ablauf der DatenverarbeitungIm folgenden sehen Sie eine schematische Darstellung eines typischen Projektes. Daraus wird ersichtlich,welche Schritte der Datenverarbeitung oft mit Matlab realisiert werden.

    Beispiel des Datenflusses in einem Projekt

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 20

    Einige Beispiele im Direktmodus

    Direktmodus bedeutet, dass Anweisungen direkt im Command Window auf derCommand Line, also direkt nach dem Prompt >> eingegeben werden. Matlab fhrtdiese dann sofort aus. Dies steht im Gegensatz zum Programmier-Modus, d.h. wennzuerst ein Programm geschrieben wird, das dann spter immer wieder ausgefhrt werdenkann (dazu mehr in der Lektion 2).

    Im folgenden knnen Sie selbst einige Mglichkeiten von Matlab ausprobieren. Starten Sie dazu Matlab,geben Sie im Command Window hinter der Eingabeaufforderung >> die in den untenstehenden Beispielennotierten Kommandos ein, und schauen, was passiert. Im Moment mssen Sie noch nicht jedes Kommando imDetail verstehen, all dies wird spter nochmals genauer erlutert.

    Beispiel 1: Benutzen von Matlab als (etwas berdimensionierten) Taschenrechner

    >> 27*5>> 2^10>> durchmesser=14.6>> umfang=durchmesser*pi>> flaeche=durchmesser^2*pi/4>> ansErluterungen: Einfache Berechnungen knnen im Direktmodus gemacht werden. Wird kein Variablennamewie durchmesser angegeben, wird das Resultat in ans (answer) gespeichert. pi ist eine internvordefinierte Konstante, die jederzeit verwendet werden kann.

    Beispiel 2: Erstellen einer Grafik im Direktmodus

    >> x = -pi:.01:pi>> y = sin(x)>> plot(x,y)>> hold on>> z = cos(x)>> plot(x,z,'r')Erluterungen: Zuerst wird eine Folge von Werten zwischen -pi und pi mit dem Abstand 0,01 generiert. Davonwerden die Sinuswerte berechnet, und die Daten anschliessend mit plot gezeichnet. hold on fixiertdie Grafik, damit sie von der nchsten plot-Anweisung nicht gelscht wird. Zustzlich wird der Cosinusberechnet und in rot in dieselbe Grafik geplottet.

    http://etools.fernuni.ch/matlab//matlab3/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 21

    Anschliessend das Grafikfenster schliessen: Entweder direkt so, wie man jedes Windows-Fenster schliesst,oder mit der Eingabe von close.

    Beispiel 3: Einige Statistikfunktionen

    >> data = randn(1, 1000);>> plot(data)>> hist(data)>> mean(data)>> std(data)Erluterungen: Im ersten Schritt werden mittels der Funktion randn 1000 normalverteilte Zufallswerteerzeugt (der Strichpunkt am Ende der Zeile verhindert die Ausgabe der Werte im Command Window). Mitplot werden diese Rohdaten in einem neuen Grafikfenster angezeigt. hist erzeugt ein Histogramm,in dem man die Normalverteilung sehen kann (eventuell muss man hier das Ausgabefenster wieder in denVordergrund holen). mean und std berechnen den Mittelwert und die Standardabweichung. Wie man sieht,erzeugt randn Werte mit dem Mittelwert 0 und der Standardabweichung 1.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 22

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 23

    Demonstrationsbeispiele von Matlab

    Matlab stellt in seiner Dokumentation zahlreiche eindrckliche Demos zur Verfgung. Im folgenden knnenSie einige davon durchspielen, um ein besseres Bild der Mchtigkeit von Matlab zu erhalten.

    Whlen Sie die Demos ber den Start-Button von Matlab oder ber das Hilfe-Menu an.

    Zwei Mglichkeiten, die Demos zu starten

    Nun wird das Hilfe-System gestartet. ffnen Sie im linken Fensterteil (help browser) die VerzeichnisstrukturMATLAB (auf das +-Zeichen clicken). Nun knnen Sie z.B. unter Graphics einige Demos anschauen.Empfohlen:

    2-D Plots

    3-D Plots

    Vibrating Logo

    Earth's Topography

    Nach dem Auswhlen muss zum Starten oben rechts Run in the Command Window (und anschliessendwiederholt Next zum weiterfahren) bzw. Run this demo angeclickt werden.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 24

    Beispiel aus der psychologischen Forschungspraxis

    Die nachfolgenden Grafiken zeigen einige Mglichkeiten, Augenbewegungsdaten mittels Matlab-Routinen zuvisualisieren (Quelle: Labor fr Perzeption und Okulomotorik, Neurologie, Universittsspital Bern).

    Zum Vergrssern bitte die Bilder anklicken.

    Darstellung des Abtastpfades: Auswertungsroutine mit grafischem Benutzerinterface

    Dichtedarstellung der Fixationen: 2D density plot Dichtedarstellung der Fixationen: 3D density plot

    Darstellung von Sakkadenamplitude und -hufigkeit je Richtung

    http://www.eyelab.dkf.unibe.ch/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 25

    Dieses Element (Animation, Video etc.) kann nicht dargestellt werden und ist nur in derOnlineversion sichtbar. [link]

    Animierte Darstellung des Abtastpfades

    http://etools.fernuni.ch/matlab//matlab2/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 26

    Die Benutzeroberflche

    bersicht

    Die Matlab-Benutzeroberflche, kurz Desktop (engl. Arbeitsflche, Schreibtisch) genannt, ist inverschiedene Bereiche aufgeteilt. Fr ein effizentes Arbeiten mit Matlab ist das Verstndnis ihrer Funktionengrundlegend. Die wichtigsten davon werden daher in dieser Lerneinheit besprochen, nmlich

    das Command Window

    der Workspace

    der Current Directory Browser

    die Command History

    Des weiteren ist es wichtig zu wissen, was das Hilfe-System von Matlab an Informationen zur Verfgung stellt.

    Die Matlab-Benutzeroberflche (Desktop)

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 27

    Darstellungsmglichkeiten des Desktops

    Der Desktop ist in verschiedene Bereiche aufgeteilt. Untenstehendes Bild zeigt die Default-Einstellung (Voreinstellung).

    Default-Darstellung des Desktops

    Die neuesten Versionen von Matlab (ca. ab Version 2008a) haben ein etwas anderes Default-Layout.Es ist also kein Fehler, wenn Ihr Bildschirm nicht genauso aussieht, wie in der Abbildung gezeigt.

    Weitere Bereiche lassen sich ber den Menupunkt Desktop dazuschalten bzw. entfernen. Die verschiedenenBereiche lassen sich auf vielfltige Weise anordnen, Fensterteile in der Grsse und Position verndern, ausdem Verbund mit den anderen herauslsen, und sie knnen die Begrenzungslinien zwischen den Teilfensternverschieben. Benutzen Sie dazu die Buttons in der rechten oberen Ecke des jeweiligen Subfensters sowieverschiedene Optionen unter dem Menupunkt Desktop benutzen.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 28

    Andere Mglichkeit der Darstellung

    Falls Sie genauer wissen wollen, welche Mglichkeiten es dazu gibt, knnen Sie sich im Hilfesystemkundig machen. Dieses ruft man mit ber das Menu Help > Product Help auf. Die Informationen zumDesktop finden Sie wie in der folgenden Abbildung gezeigt.

    Sollte Ihr Matlab-Desktop nicht der Default-Einstellung entsprechen, stellen Sie bitte dieseGrundeinstellung her: Desktop > Desktop Layout > Default

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 29

    Das Command Window

    Der Bereich des Command Windows (Kommandofenster) ist der Kommunikationskanal zwischen demBenutzer und Matlab. Sie haben ihn bei der Eingabe der ersten Beispiele bereits benutzt. Er dient zurEingabe von Anweisungen, und Programme knnen Resultate in dieses Fenster ausgeben. Auch Warnungen,Fehlermeldungen etc. erscheinen hier.

    Frher eingegebene Befehle lassen sich mit den Tasten und wieder hervorholen, und dann allenfalls abndern und nochmals ausfhren.

    Das Command Window von Matlab

    Einige Einstellungen des Command Windows

    Mit folgenden Kommandos knnen Sie die Ausgabe im Command Window beeinflussen:

    >> pi>> format compact>> pi>> home

    PI anzeigenAusgabeformat 'compact' einstellennun ist's tatschlich kompakternach oben links gehen, aber Inhalt des Command Windows nicht lschen

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 30

    >> clc lscht das Command Window komplett (clear command window)

    Erluterungen: Der Befehl format ermglicht, die Ausgabe von Werten im Command Window aufvielfltige Weise zu beeinflussen. format compact verhindert die Ausgabe von berflssigen Leerzeilen.Fr weitere Mglichkeiten sehen Sie bitte die Angaben im Hilfe-System (z.B. durch die Eingabe vondocsearch format im Command Window).

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 31

    Der Workspace

    Der Workspace ist quasi das Arbeitsgedchtnis von Matlab. Hier werden alle verwendeten Variablengespeichert, und darauf kann das Programm direkt zugreifen. In der untenstehenden Abbildung finden Siedort die Variablen vor, die wir bei den Demonstrationsbeispielen benutzt haben. Hier kann z.B. direkt auf dieVariablen zugegriffen werden, um sie anzuzeigen oder zu verndern.

    Der "Workspace" von Matlab

    Tools im Workspace

    Markieren Sie eine Variable im Workspace und schauen Sie sich die in der Werkzeugleiste desWorkspaces vorhandenen Werkzeuge an. Am hufigsten verwendet werden Open und die Grafik-Tools.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 32

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 33

    Der Current Directory-Browser

    Dieser liegt im gleichen Fensterteil wie der Workspace und kann ber den Register-Reiter hervorgeholtwerden. Er dient dazu, sich im Dateisystem des Computers zurechtzufinden, und damit das aktuelleVerzeichnis fr Lade- und Speichervorgnge von Daten sowie das Stammverzeichnis des Editors zuwhlen. Letzteres wird im Eingabefeld Current Directory rechts oben angezeigt und kann alternativ auchdort gewhlt werden.

    Dies ist nicht zu verwechseln mit dem path, mit dem Matlab mitgeteilt wird, wo dieProgrammdateien liegen, vgl. Abschnitt Konfiguration von Matlab.

    Das Current Directory-Fenster von Matlab

    http://etools.fernuni.ch/matlab//matlab1/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 34

    Die Command History

    In diesem Unterfenster finden Sie die Geschichte Ihrer Benutzung von Matlab, d.h. die in letzter Zeitim Command Window eingegebenen Befehle. Diese Liste lsst sich durchsuchen, einzelne Befehle erneutaufrufen, oder es ist mglich, aus mehreren selektierten Befehlen direkt ein Programm (Skript) zu erstellen.

    Die "Command History" von Matlab

    Nochmaliges Ausfhren von frher verwendeten Befehlen

    Finden und markieren (z.B. mit Shift-Click oder Ctrl-Click) Sie in Ihrer Command History die inder obenstehenden Abbildung umrahmten Befehle, die aus den Beispielen aus dem ersten Abschnittstammen (falls Sie diese nicht gemacht haben, markieren Sie einige andere Befehle). Whlen Sie dannber das Context-Menu (rechte Maustaste) den Punkt Evaluate Selection (oder drcken Sie F9). Sowerden die markierten Befehle nochmals ausgefhrt.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 35

    Benutzung des Hilfe-Systems

    Das Hilfe-System von Matlab ist usserst gut ausgebaut und macht jedes gedruckte Handbuch berflssig.Es ist sowohl beim Erlernen von Matlab wie auch bei der tglichen Arbeit fr fortgeschrittene Anwenderein unverzichtbares Hilfsmittel. Neben der eigentlichen Dokumentation des Matlab-Hauptprogrammes undallflliger Toolboxen beinhaltet es - wie wir gesehen haben - auch eine Flle von Beispielen und einigeTutorials, um den Einstieg zu erleichtern, sowie Links zu Online-Ressourcen von Mathworks.

    Aufruf des Hilfe-Systems

    Das Hilfe-System kann auf verschiedene Arten aufgerufen werden. Die wichtigsten davon sindfolgende (bitte direkt im Programm ausprobieren):

    ber Help > Product Help. Auf diese Weise wird der Help Browser/Help Navigator geffnet (s. Bildunten)

    Mit der Taste F1. Wenn man sich dabei im Command Window befindet, wird eine reduzierte Versionaufgerufen, hnlich einem der anderen Unterfenster des Desktops. Unten links befindet sich ein LinkOpen Help Browser, mit dem man in die Volldarstellung wechseln kann.

    Hilfe zu bestimmten Funktionen: doc funktionsname, z.B. doc sin. So wird direkt derEintrag fr die betreffende Funktion angezeigt.

    hnlich kann man auch im Command Window einen bereits getippten Befehl markieren und ber dasKontextmenu (rechte Maustaste) Help on Selection die Hilfe dazu aufrufen (oder mit der Taste F1).

    Wenn man den Hilfeeintrag noch nicht genau kennt, kann man mittels direktem Befehl in die Hilfe-Suchfunktion einsteigen, z.B. docsearch operators

    Inhalte findenMatlab bietet im wesentlichen drei Mglichkeiten, Hilfe zu bestimmten Fragen zu finden. Diese sind im linkenTeil, im Help Navigator, zu finden.

    1. Contents: Darstellung als logisch gegliedertes Inhaltsverzeichnis.2. Index: alphabetisch geordneter Index der Hilfethemen3. Suchfunktion: Im Feld Search for: kann nach Stichwrtern gesucht werden. Die gefundenen Eintrge

    werden dann in den Search Results angezeigt, und der erste Eintrag im Hauptfenster.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 36

    Das Hilfesystem von Matlab

    Zudem werden unmittelbar nach dem Start des Hilfesystems auch im Hauptfenster verschiedeneMglichkeiten angeboten: Suchen in Kategorien, alphabetisch, nach Objekteigenschaften, sowie Links zudruckbaren Versionen der Dokumentation (pdf) und externen Ressourcen auf der Mathworks-Homepage.Im Hauptfenster kann man - hnlich wie in einem Internet-Browser - komfortabel in den Inhalten vor- undzurckblttern, suchen, Favoriten anlegen oder drucken.

    bernehmen von Beispielcode aus dem Hilfe-System

    Code-Beispiele, die in Hilfe-Eintrgen erscheinen, kann man ganz einfach mittels Copy-and-Paste indas Command Window (oder in ein Programm) kopieren und dort ausprobieren.

    Im Help Navigator plot3 eingeben und Go clicken (alternativ: im Command Window doc plot3)

    runterscrollen und die vier Programmzeilen nach Examples: Plot a three-dimensional helix selektieren

    Edit > Copy oder Ctrl-C

    Wechseln in das Command Window, und dort Edit > Paste oder CTRL-V ausfhren

    Die Enter-Taste zum Ausfhren drcken, und... WOW!

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 37

    Zusammenfassung

    Die wichtigsten Punkte des Abschnittes Benutzeroberflche finden Sie im folgendenkurz zusammengefasst.

    Der Bereich des Command Windows (Kommandofenster) ist derKommunikationskanal zwischen dem Benutzer und Matlab. Hier knnen SieAnweisungen eingeben, und Programme knnen Resultate in dieses Fensterausgeben. Auch Warnungen, Fehlermeldungen etc. erscheinen hier.

    Frher eingegebene Befehle im Command Window lassen sich mit den Tasten und wieder hervorholen, und dann allenfallsabndern und nochmals ausfhren.

    Der Workspace ist das Arbeitsgedchtnis von Matlab. Hier werden dieverwendeten Variablen gespeichert. Programme arbeiten mit diesen Variablen.

    Der Current Directory Browser erlaubt den Zugriff auf das Dateisystemdes Computers. Man kann damit das aktuelle Verzeichnis fr Lade- undSpeichervorgnge von Daten sowie das Stammverzeichnis des Editors zu whlen

    Im Fenster Command History finden Sie die in letzter Zeit im CommandWindow eingegebenen Befehle.

    Das Hilfe-System von Matlab ist ein unverzichtbares Hilfsmittel fr Anfnger wieProfis. Es macht ein gedrucktes Handbuch berflssig.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 38

    Zahlen und Variablen in MatlabWie Sie bereits im Abschnitt Wozu Matlab? gesehen haben, knnen Berechnung, grafische Darstellungen etc.auf simple Art im sogenannten Direktmodus - d.h. direkte Eingabe von Kommandos im Command Window- vorgenommen werden.In den folgenden Lerneinheiten erlernen Sie die Grundlagen, um im Direktmodus arbeiten zu knnen:

    Wie werden Zahlen in Matlab dargestellt?

    Was sind Variablen?

    Der wichtigste Datentyp: Matrizen

    Wie geht man mit Matrizen um?

    Mit welchen Operatoren und Funktionen kann man rechnen?

    All dies ist nicht nur im Direktmodus relevant, sondern gilt auch fr selbst geschriebene Programme, wie Siein der Lektion Programmieren in Matlab erfahren werden.Dies erlaubt, die Anweisungen, die in ein Programm eingefgt werden sollen, zuerst im Direktmodusauszuprobieren, wenn man sich ber deren Syntax oder Funktion im unklaren ist, bevor man sie dann insProgramm bernimmt.

    http://etools.fernuni.ch/matlab//matlab3/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 39

    Reprsentation von Zahlen

    Gemss der Konvention im angelschsischen Sprachraum werden Zahlen mit Dezimalstellen mit Punkt notiert.Das Komma dient in Matlab der Trennung aufeinanderfolgender Anweisungen auf derselben Zeile. DasResultat einer Berechnung (hier nur die Eingabe einer Zahl) wird der vordefinierten Variablen ans (answer)zugewiesen, sofern keine Zuweisung zu einer Variablen erfolgt.

    Geben Sie die nachfolgenden Kommandos im Command Window ein und versuchen Sienachzuvollziehen, was Matlab damit anfngt.

    >> format compact>> 23.736>> 7,43>> pi

    kompaktere Darstellung aktivierenkorrekte Eingabe einer Zahlwird als zwei Zahlen interpretiert, durch das Komma getrenntpi ist eine vordefinierte Konstante, die jederzeit verwendet werden kann

    Fr Zahlen in Exponentialnotation wird der Buchstabe e benutzt, um den Exponenten abzutrennen. Beispiele:

    >> 1.746e5>> 584e-11

    fr 1,746 x 105

    auch negative Exponenten sind natrlich mglich

    Im Gegensatz zu anderen Programmiersprachen verfgt Matlab auch ber eine Reprsentation von zweibesonderen Zahlenwerten: unendlich (inf, infinite) und keine Zahl (NaN, Not a Number). Diese knnen alsResultat von Berechnungen entstehen, wie z.B. Division durch Null, und auch einer Variablen zugewiesenwerden.

    Probieren Sie folgende Kommandos aus, die dies illustrieren.

    >> 2/0>> -5/0>> 0/0>> inf/inf>> 0*inf

    Division durch 0 gibt infauch minus unendlich ist mglich0 dividiert durch 0 gibt NaN

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 40

    Variablen

    Daten werden im Arbeitsspeicher von Matlab (dem Workspace) als Variablen gespeichert.

    Eine Variable ist ein reservierter Speicherplatz im Hauptspeicher des Computers,welcher mit einem eindeutigen Namen angesprochen werden kann.Eine Variable kann verschiedene Arten von Daten enthalten. Dieser Umstand wirdausgedrckt, indem man sagt, dass die Variable von einem bestimmten Datentyp ist.

    Beispiele von Datentypen sind einfache Zahlen, Matrizen, Zeichenketten (Strings), strukturierte Daten etc.In den folgenden Beispielen arbeiten wir mit einfachen Zahlen. Weitere Datentypen werden Sie im spterenVerlauf kennenlernen.Im Gegensatz zu vielen anderen Programmiersprachen mssen Variablen in Matlab nicht vordefiniert - d.h.ihnen ein Speicherplatz zugewiesen - werden. Matlab reserviert ihren Speicherplatz bei der ersten Verwendung(d.h. bei der ersten Zuweisung eines Wertes) automatisch.

    Konventionen fr VariablennamenEine Variable wird durch einen eindeutigen Namen gekennzeichnet. Dieser muss mit einem Buchstabenbeginnen, und kann danach Buchstaben, Zahlen oder den underscore _ enthalten.Variablennamen sind case-sensitive, d.h. Gross- und Kleinschreibung ist relevant.

    An den folgenden Beispielen sehen Sie, welche Variablennamen mglich sind und wie diese mitInhalten befllt und diese auch wieder abgerufen werden knnen.

    >> Speed = 63>> g65_fubar = 3>> Speed>> speed>> 6test = 2>> _foo = 1>> hallo$du>> pi = 11>> sin = 0

    das Gleichzeichen weist der Variablen einen Wert zuauch ein gltiger Nameden Wert wieder abrufenklein geschrieben geht's nichtam Anfang kein Buchstabe ist ungltigebensonur das Sonderzeichen _ ist erlaubtAuch das Umdefinieren von vordef. Konstanten wie pi oder Funktionsnamen(hier die Sinus-Funktion sin) ist mglich, aber mit Vorsicht zu verwenden...

    Laden und Speichern der Variablen im WorkspaceAlle einmal verwendeten Variablen sind im Workspace sichtbar. Der Inhalt des Workspaces kann mit saveauf die Festplatte gespeichert werden (in dasjenige Verzeichnis, das im Current Directory Browser-Fensterangewhlt ist) und mit load wieder geladen werden.Einzelne Variablen knnen mit dem Kommando clear aus dem Workspace entfernt werden.

    Probieren Sie auch dies bitte selbst aus:

    >> save daten>> clear Speed>> clear>> load daten

    speichert alle Variablen in der Datei daten.matdie Variable Speed ist nicht mehr im Workspace sichtbarlscht alle Variablen (siehe Workspace-Fenster)ldt die Variablen wieder zurck (siehe Workspace-Fenster)

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 41

    Speichern und laden von Workspace-Variablen ist auch ber die Menu-Buttons des Workspace-Fenstersmglich. Einzelne Variablen lassen sich direkt im Workspace lschen (Markieren und 'delete'-Taste oderKontextmenu > delete).

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 42

    Zusammenfassung

    Die wichtigsten Punkte des Abschnittes Zahlen und Variablen finden Sie im folgendenkurz zusammengefasst.

    Die Dezimalstellen einer Zahl werden mit Punkt (nicht Komma) notiert.

    Die Exponentialnotation erfolgt mit e, also zum Beispiel 2.7e6 fr 2,7 x 106.

    Operationen wie Division durch Null, die in anderen Programmiersprachen undAnwendungen nicht zulssig sind, ergeben in Matlab definierte Werte wie inffr unendlich oder NaN fr keine Zahl.

    Eine Variable wird durch einen eindeutigen Namen gekennzeichnet. Dieser mussmit einem Buchstaben beginnen, und kann danach Buchstaben, Zahlen oder denunderscore _ enthalten.

    Variablennamen sind case-sensitive, d.h. Gross- und Kleinschreibung ist relevant.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 43

    Reprsentation von Daten 1: Skalare, Vektoren und MatrizenMatlab kennt verschiedene Reprsentationen von Daten. Die wichtigste ist die Darstellung als Matrix, daherja auch der Name Matlab (Matrix Laboratory).Die gelufigste Form einer Matrix ist diejenige einer zweidimensionalen Matrix, vergleichbar einerTabelle. Matrizen enthalten ausschliesslich numerische Werte (Ausnahme: Zeichenketten, vgl. AbschnittReprsentation von Daten 2: Zeichenketten (Strings) in der nchsten Lektion.Eine Matrix ist sehr gut geeignet, Daten abzuspeichern, wie sie auch sonst in Tabellenform erfasst werdenknnten - z.B. um schnell einen Datensatz zu erstellen, oder maschinell erfasste Daten zu reprsentieren.Beispiel: Ein einfacher Datensatz, der in der ersten Spalte die Versuchspersonennummer enthlt, in der zweitendas Geschlecht (z.B. 1 = weiblich, 2 = mnnlich), in der dritten das Alter der Vp, und in Spalte vier und fnfdie Messwerte zweier abhngiger Variablen.

    Einfache Datenmatrix mit Daten von fnf Versuchspersonen

    Gemss der Terminologie der linearen Algebra werden gewisse Sonderflle von Matrizen, entsprechend ihrerAnzahl Dimensionen, wie folgt bezeichnet:

    Skalar: nulldimensionale Matrix, d.h. nur ein Element

    Vektor: eindimensionale Matrix

    Matrix: zwei- oder hherdimensionale Matrix. Diese werden oft auch als Array bezeichnet.

    Diese werden Sie im folgenden genauer kennenlernen.

    http://etools.fernuni.ch/matlab//matlab3/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 44

    Skalare

    Ein Skalar ist eine Matrix mit einer Zeile und einer Spalte, also mit nur einem einzigen numerischen Wert.

    Die Schreibweise mit eckigen Klammern [ ] bezeichnet immer eine Matrix,inkl. Skalare und Vektoren! (mit einer Ausnahme, s. Abschnitt Programmieren vonFunktionen, Beispiel 3).

    Bitte probieren Sie's aus:

    >> sk = 93>> sk2 = [13]>> sk(1,1)>> isscalar(sk)

    Dies ist ein Skalar. Dafr sind die eckigen Klammern also nicht zwingend.allgemeinere Schreibweise als 1x1-Matrixist identisch mit sk - das Element in Zeile 1, Spalte 1bestimmt, ob sk ein Skalar ist (1 = ja, 0 = nein)

    http://etools.fernuni.ch/matlab//matlab3/de/http://etools.fernuni.ch/matlab//matlab3/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 45

    Vektoren

    Ein Vektor enthlt mehr als ein numerisches Element, die quasi nebeneinander oder untereinander angeordnetwerden.Abhngig davon, ob die Elemente des Vektors nebeneinander oder untereinander angeordnet sind, spricht manvon:

    Spaltenvektoren (eine Spalte, beliebig viele Zeilen)

    Zeilenvektoren (eine Zeile, beliebig viele Spalten)

    Anders gesagt ist ein Vektor also eine Matrix mit nur einer einzigen Zeile oder einer Spalte.

    Bitte versuchen Sie die folgenden Beispiele nachzuvollziehen:

    >> zvekt = [1 4 8]>> zvekt = [1,4,8]>> zvekt(2)>> zvekt(0)>> svekt = [12; 55; inf]>> svekt(1:2)>> folge = 0:2:10>> folge2 = 20:30>> folge3 = pi:-.1:-pi>> folge2'>> isvector(folge2)>> length(folge3)

    ein Zeilenvektor mit drei Elementendie Elemente knnen mit Leerschlag oder Komma getrennt werdenDas zweite Element des Vektors abrufenWichtig: Es gibt es kein nulltes Element!ein Spaltenvektor. Der Strichpunkt trennt die Zeilendas erste bis zweite Element des Vektors abrufenerzeugt einen Vektor mit Zahlen in gleichem Abstand.wird der mittlere Wert weggelassen, betrgt der Abstand 1auch negative und gebrochene Schrittweiten sind mglichDer Apostroph transponiert eine Matrix.Hier: Umwandlung Zeilen- zu Spaltenvektorist das ein Vektor?bestimmt die Lnge eines Vektors

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 46

    Matrizen

    In der Mathematik ist eine Matrix (Plural: Matrizen) eine Tabelle von Zahlen oder anderen Gren. Diegebruchlichste Matrix ist sicher die zweidimensionale (m Zeilen, n Spalten), sie entspricht einer Tabelle,wie man sie z.B. aus MS Excel kennt (allerdings kann sie nur Zahlen enthalten). Matlab erlaubt aber auchhherdimensionale Matrizen, also solche mit drei oder mehr Dimensionen.

    Demonstrationsbeispiel: Die Matrix in Melancholia von Drer

    >> load durer>> image(X)>> colormap(map)>> load detail>> image(X), colormap(map)>> m4 = magic(4)

    ldt einen vordefinierten Datensatz in den Workspace (Variable X)stellt ihn als Bild darldt die richtige Farbpalette dazu. Finden Sie die Matrix?ein anderer Datensatz mit dem BilddetailEin magisches Quadrat!das kann Matlab auch (finden Sie den Unterschied!)

    Matrizen knnen auf vielfltige Weise erzeugt werden, und auch der Zugriff auf ihre Elemente ist sehr variabelmglich, wie Sie in den folgenden Beispielen sehen knnen.

    Erzeugen von Matrizen und Zugreifen auf ihre Inhalte und Eigenschaften.

    >> M3=[12 13 10;3 5 8;3 2 1]>> M3(2, 3)>> M3(:, 3)>> M4 = [1:4; 6:2:12]>> M4(1, 2:end)>> M4(3, 4)>> M4(3, 4) = 55>> M5 = M4(1:2, 2:3)>> M4(1:2, 2:3) = -1>> mag = magic(4)>> mag = mag(:, [1 3 2 4])>> M4(1, 1, 3) = 100>> groesse = size(M4)>> size(M4, 1)>> ndims(M4)>> numel(M4)>> leer = [];>> isempty(leer)>> isempty(mag)>> p = pascal(8)>> p(3, :) = []>> p(:, 6) = []

    eine 3x3-Matrixeinzelne Elemente ansprechen (Zeile, Spalte)die ganze 3. Spalte; der : bezeichnet alle Elementeauch die Notation fr Zahlenfolgen ist mglichend bezeichnet das letzte Elementliegt ausserhalb der MatrixMatlab erweitert die Matrix automatisch und fllt mit 0 aufeine Teilmatrix einer neuen Variablen zuweiseneinen Teil der Matrix belegennochmals das magische Quadratdurch vertauschen der 2. & 3. Spalte in Drers Quadrat verwandelnd.h. Indizierung durch Vektordie Matrize M4 auf eine dreidimensionale erweiternergibt die Grsse der Matrix (als Vektor!)nur die Anzahl Zeilen abfragen (2 ergibt die Spalten)Anzahl Dimensionen (number of dimensions)Anzahl Elemente (number of elements)leere Matrix erzeugenAbfrage, ob Matrix leer istnoch eine Matrix erzeugen (Pascal'sches Dreieck)So kann man eine Zeile aus der Matrix entfernenanalog fr eine Spalte

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 47

    Lineare Indizierung

    Die lineare Indizierung ermglicht eine etwas andere Art des Zugriffs aufdie Elemente einer Matrix. Anstatt das Element mit Zeile und Spalte zu adressieren, kann man eine Matrixauch quasi durchnumerieren (zuerst in Spalten, dann in Zeilen). Mit einem einzelnen Argument adressiertman also das x-te Element der Matrix.In der abgebildeteten Matrix ist das Element data(2, 4) also identisch mit data(17) mit dem Inhalt 14.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 48

    Zusammenfassung

    Unten finden Sie die wichtigsten Merkpunkte wieder in einer kurzen Zusammenfassung.Zustzlich werden auch die hufig gebrauchten Matlab-Anweisungen aufgelistet.

    Merkpunkte

    Ein Skalar ist eine Matrix mit einer Zeile und einer Spalte, also mit nur einemeinzigen numerischen Wert.

    Ein Vektor ist eine Matrix mit nur einer einzigen Zeile (Zeilenvektor) oder einerSpalte (Spaltenvektor).

    Die gebruchlichste Matrix ist die zweidimensionale (m Zeilen, n Spalten). Matlaberlaubt aber auch hherdimensionale Matrizen, also z.B. mit m Zeilen, n Spaltenund p Ebenen.

    Matrizen und Vektoren werden bei der Definition mit eckigen Klammern [ ]notiert. Bei Skalaren sind die Klammern optional.

    Die Elemente von Matrizen und Vektoren werden in der Zeile mit Leerschlag oderKomma getrennt. Der Strichpunkt ergibt eine neue Zeile.

    Zahlenfolgen (= Vektoren) knnen mit der : - Notation erzeugt werden, z.B.10:2:50 fr alle geraden Zahlen von 10 bis 50.

    Ein alleine stehender Doppelpunkt bezeichnet alle Elemente in einer Zeile bzw.Spalte, z.B. daten(:, 12) fr alle Zeilen, aber nur Spalte 12 der Matrix.

    Beim Zugriff auf einzelne Elemente einer Matrix werden die Indices in rundenKlammern ( ) eingeschlossen.

    Die Indices gehen immer von 1 bis n, der Index 0 (ein nulltes Element) existiertin Matlab nicht.

    Bei zweidimensionalen Matrizen ist der erste Index ist immer die Zeile (row), derzweite die Spalte (column).

    Lineare Indizierung: Anstatt das Element mit Zeile und Spalte zu adressieren, kannman eine Matrix auch quasi durchnumerieren (zuerst in Spalten, dann in Zeilen).Mit dem linearen Index adressiert man dann das x-te Element der Matrix.

    Anweisungen

    isscalar, isvector: prft, ob eine Variable ein Skalar bzw. ein Vektorist

    length bestimmt die Lnge eines Vektors

    ndims ergibt die Anzahl Dimensionen einer Matrix

    numel berechnet die Anzahl Elemente einer Matrix

    size gibt die Grsse der Matrix zurck

    isempty bestimmt, ob die Matrix leer ist

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 49

    MatrizenmanipulationIm folgenden erlernen Sie verschiedene Mglichkeiten, Matrizen zu manipulieren:

    Zusammenfgen von Matrizen

    Vervielfltigen von Matrizen

    Erzeugen spezieller Matrizen

    Umformen von Matrizen

    Diese Lerneinheit wird mit einer ersten praktischen bungsaufgabe abgeschlossen.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 50

    Matrizen zusammenfgen

    Matrizen knnen mittels der normalen [ ] -Notation zusammengefgt werden.

    Versuchen Sie dies anhand der folgenden Beispiele nachzuvollziehen:

    >> a = magic(5);>> b = randn(5,3);>> c = [a b]>> d = [a; b]>> b = randn(5,5);>> d = [a; b]>> e = [a, d, a]

    der Strichpunkt verhindert die Ausgabe von a im Command WindowZufallszahlen, 5 Zeilen, 3 Spaltenhorizontales Zusammenfgenvertikales Zus.fgen: geht so nicht, weil die Anz. Spalten nicht bereinstimmenalso machen wir eine 5x5-Matrix aus bnun funktioniert'sauch mehrere Matrizen gleichzeitig zusammenfgen ist mglich

    Aus den obigen Beispielen wird ersichtlich, dass der Strichpunkt am Ende einerAnweisung dazu dient, die Ausgabe der erzeugten Zahlenwerte bzw. die Inhalte derVariablen im Command Window zu unterdrcken.

    Matlab stellt neben der eben besprochenen Mglichkeit auch spezielle Funktionen zum Zusammenfgen vonMatrizen zur Verfgung.

    Auch dies wieder an Beispielen gezeigt:

    >> horzcat(a, b)>> vertcat(a, b, a)

    horizontal concatenation: horizontales Zusammenfgenvertical concatenation: vertikales Zusammenfgen;auch mehr als zwei Matrizen sind mglich

    Eine bersicht ber die grundlegenden Befehle zur Matrizenmanipulation finden Sie im Hilfe-System,z.B. durch Eingabe von doc elmat (elementary matrices and matrix manipulation.)

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 51

    Vervielfltigung von Matrizen

    Die wichtigsten beiden Funktion zur Vervielfltigung von Matrizen lauten repmat (repetition of matrices)und cat (concatenation).

    Bitte studieren Sie die Anwendung dieser beiden Befehle anhand der folgenden Manipulationen. DieVariablen a und b aus den vorherigen Beispielen sollten Sie noch im Workspace haben.

    >> m = magic(3);>> n = repmat(m,2,3)>> cat(1, a, b)>> cat(2, a, b)

    Matrizen vervielfltigen. Hier 2mal vertikal und 3mal horizontalAllgemeine Funktion: entlang der Dimension n (1. Argument) zusammenfgen.1 = vertikal, 2 = horizontal, 3 = "Ebene"

    Illustration zur cat-Funktion

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 52

    Erzeugen spezieller Matrizen

    Gewisse spezielle Matrizen werden immer wieder bentigt, daher stellt Matlab Funktionen zur Verfgung, umdiese zu erzeugen. Einige Beispiele:

    Matrizen mit Nullen oder Einsen gefllt

    Matrizen von Zufallszahlen mit verschiedenen Verteilungen. Dies kann manchmal zum Testenstatistischer Funktionen oder zum Erstellen von Testdatenstzen hilfreich sein. Siehe hiezu auchAbschnitt Zufallsdaten in Lektion 4

    Besondere Matrizen fr die lineare Algebra: Identittsmatrix, Pascal'sches Dreieck etc.

    Die wichtigsten dieser Funktionen knnen Sie aus folgenden Beispielen ersehen.

    >> zeros(7, 3)>> alleseins = ones(4)>> a(1:5, 1:10) = 3.5>> b = ones(7, 3) * 81>> rand(1, 8)>> randn(2, 6)>> eye(5)>> pascal(7)>> magic(8)

    Matrix mit NullenMatrix mit Einsen. Wird nur ein Argument angegeben,resultiert eine quadratische MatrixBraucht man Matrizen mit anderen Werten, gibt es versch. Methodenzufallsverteilte Zahlen zwischen 0 und 1normalverteilte Zufallszahlen mit Mittelwert 0 und Standardabweichung1sog. Identittsmatrix (nur quadratisch mglich), fr lineare AlgebraPascal-Matrix, auch eher was fr MathematikerInnenmagische Quadrate

    http://etools.fernuni.ch/matlab//matlab5/de/

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 53

    Umformen von Matrizen

    Die wichtigsten Umformungen sind:

    Spiegeln (horizontal oder vertikal)

    Rotieren

    Transponieren (Zeilen und Spalten vertauschen)

    Beispiele zum Ausprobieren:

    >> a = [1 2 4 8 16; 0 1 2 3 4; -1 -6 0 1 6];

    >> fliplr(a)>> flipud(a)>> rot90(a)>> rot90(a, 3)>> a'

    flip left-right: an der vertikalen Achse spiegelnflip up-down: an der horizontalen Achse spiegelnum 90 Grad im Gegenuhrzeigersinn rotieren (default: 1mal)3-mal um 90 Grad rotierenMatrix transponieren (Zeilen und Spalten vertauschen)

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 54

    Aufgabe 1: Erstellen einer komplexen Datenmatrix

    Sie haben nun die Grundlagen erlernt, um verschiedenste Arten von Matrizen zu erzeugen und zu verndern.Fr den Lernerfolg ist es sehr wichtig, dass Sie versuchen, dieses theoretische Wissen konkret in die Praxisumzusetzen, indem Sie selbststndig ein Beispiel lsen.

    AufgabenstellungManchmal ist es hilfreich, zum Testen einer Auswertungsroutine fr Experimentaldaten einen Testdatensatzerzeugen zu knnen, wenn man noch keine "echten" Daten erhoben hat. Versuche Sie dies anhand der folgendenAufgabe umzusetzen.Am Ende der Aufgabenstellung finden Sie den Link zu einer Musterlsung, die Sie konsultieren knnen, fallsSie nicht weiterkommen. Es ist aber wichtig zu erkennen, dass es nicht nur eine mgliche Lsung gibt.

    Greifen Sie nicht zu rasch auf die Musterlsung zurck, sondern versuchen Sie auch, das Hilfe-Systemvon Matlab zu rate zu ziehen.

    Bilden Sie die unten abgebildete Matrix testdata mit hypothetischen Testdaten im Workspacenach. Versuchen Sie dies mit mglichst wenigen Anweisungen zu erreichen.

    Erluterungen zu den Daten:Spalte 1: VersuchspersonennummerSpalte 2: 1. oder 2. Durchfhrung des ExperimentesSpalten 3-12: markieren verschiedene ExperimentalbedingungenSpalte 13: normalverteilte Zufallsdaten (sie mssen nicht identisch mit den abgebildeten Werten sein). VierWerte werden durch NaN als "missing data" gekennzeichnet".Tips fr verwendbare Funktionen: eye, repmat, randn

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 55

    Musterlsung

    >> testdata = (27:36)' % Vp-Nummern obere Hlfte>> testdata = [testdata ones(1, 10)' eye(10)] % Gruppennrn. Gruppe 1 und Diagonale>> testdata = repmat(testdata, 2, 1) % ganze Matrix vertikal verdoppeln>> testdata(11:20, 2) = 2 % Gruppe 2 eintragen>> testdata(:, 13) = randn(20, 1) % zufallsverteilte Daten>> testdata([4, 11:13], 13) = NaN % missing values eintragenAlle Zeilen knnen zusammen durch Copy/Paste in das Command Window bernommenwerden.Alles, was nach dem %-Zeichen kommt, ist Kommentar und wird von Matlab nicht interpretiert.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 56

    Zusammenfassung

    Zusammenfassung der wichtigsten Merkpunkte und Anweisungen:

    Merkpunkte

    Ein Strichpunkt am Ende einer Anweisung im Direktmodus dient dazu, dieAusgabe der erzeugten Zahlenwerte im Command Window zu unterdrcken.

    Matrizen knnen mittels der normalen [ ]-Notation horizontal oder vertikalzusammengefgt werden. Statt einzelner Zahlen werden dafr einfach ganzeMatrizen eingesetzt, z.B. d = [a; b]. Dabei mssen die Dimensionender Matrizen bereinstimmen, also die Anzahl Zeilen beim horizontalenZusammenfgen, und die Anzahl Spalten beim vertikalen Zusammenfgen.

    Anweisungen

    horzcat, vertcat: Horizontales oder vertikales Zusammenfgen vonMatrizen

    cat: Allgemeine Anweisung zum Zusammenfgen von Matrizen in Zeile, Spalte,Ebene etc.

    repmat: Eine Matrix vervielfltigen

    zeros, ones erzeugt eine Matrix mit Nullen bzw. Einsen

    rand, randn erzeugt Matrizen mit gleich- oder normalverteiltenZufallszahlen

    fliplr, flipud: Spiegeln von Matrizen links/rechts bzw. oben/unten

    rot90: Rotation um 90 Grad

    data': Transponierung der Matrix data, d.h. Vertauschung von Zeilen undSpalten

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 57

    Mathematische Operatoren und FunktionenIn dieser Lerneinheit werden mathematischen Operatoren und Funktionen erlutert.Unter mathematischen Operatoren versteht man Funktionszeichen wie:

    Addition +, Subtraktion -, Vorzeichen etc.

    Multiplikation * und Division /

    Exponentialfunktionen wie Quadrierung ^2

    Damit verbunden sind auch die Prioritten der Operationen und die Klammerregeln

    Andere mathematische Manipulationen sind als Funktionen realisiert, z.B.

    trigonometrische Funktionen wie Sinus, Cosinus, Tangens etc.

    deskriptive Funktionen wie Minimum, Maximum, Mittelwerte u..

    mathematische Grundfunktionen wie Quadratwurzel, Logarithmus, Summe, Rundung etc.

    und sehr viel anderes mehr...

    Der Funktionsumfang von Matlab ist immens, daher kann hier nur ein Einblick in die wichtigsten Funktionengegeben werden.Der Umgang mit Funktionen und Operatoren kann anschliessend an zwei bungsaufgaben erprobt werden.

    Das Hilfe-System gibt Auskunft ber weitere verfgbare Funktionen, z.B. indem man im Suchfeld desHilfe-Fensters elementary math eingibt.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 58

    Operatoren

    Das Hilfesystem gibt einen guten berblick ber die mathematischen Operatoren und derenSchreibweise: Entweder gibt man im Help Navigator arithmetic operators ein, oder im CommandWindow docsearch 'arithmetic operators' (die Hochkommata sind ntig, weil derSuchbegriff einen Leerschlag enthlt).Beim Ausfhren von Berechnungen kommen einige Besonderheiten von Matlab zum tragen. Solange

    man ausschliesslich mit Skalaren 4 arbeitet, funktioniert alles, wie es auch ein Taschenrechner

    ausfhren wrde. Operationen mit Matrizen (und Vektoren 5) dagegen gehorchen z.T. anderen Regeln(lineare Algebra).

    Bitte versuchen Sie die nachfolgenden Beispiele zu verstehen:

    >> magic(3) + ones(3)>> a(1:3, 1:3) = 5;>> a * magic(3)>> a .* magic(3)>> magic(3) * 5

    Die Addition erfolgt immer Element fr Element. Die beiden Matrizenmssen die gleiche Grsse haben.Die Multiplikation von zwei Matrizen erfolgt nicht Element fr Element(lineare Algebra, fr Anwendungen in unserem Fachgebiet in der Regelnicht relevant).Um dies zu erreichen, verwendet man den Operator .*(array multiplication, element-by-element product)Um jedes Element einer Matrix mit 5 zu multiplizieren, kann man sie aucheinfach mit einem Skalar (also hier 5) multiplizieren. Dieses Verfahrennennt sich scalar expansion

    Wenn man sich ber die Funktion eines Operators unsicher ist, probiert man es am besten einfach imDirektmodus aus, bevor man die Operation ins Programm einfgt.Die Rangfolge fr die Ausfhrung verschiedener Operationen gehorcht den allgemeinen mathematischenRegeln (z.B. Punkt vor Strich), wie blich muss hier mit Klammern gearbeitet werden, wenn eine andereRangfolge notwendig ist.

    Die Hilfe dazu erhlt man mit dem Stichwort operator precedence im Hilfesystem.

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 59

    Funktionen

    Matlab bietet eine Unmenge an vordefinierten mathematischen Funktionen (z.B. Sinus, Mittelwert, Wurzeletc.).

    Hilfe dazu findet man im Hilfesystem bei "Contents" unter Function reference > Mathematics >Elementary math

    Einige Beispiele fr mathematische Funktionen:

    >> data = magic(10);>> sum(data)>> sum(sum(data))>> min(data)>> max(data)>> std(data)>> sin(data)>> round(pi)>> why

    sum bildet die Summe in SpaltenFr die Gesamtsumme kann man zwei Statements verschachtelnMinimum und Maximum pro SpalteStandardabweichung in SpaltenFunktionen wie Sinus berechnen das Resultat fr jedes Element separatRundungsfunktionAuch eine Funktion: Antwort auf alle mglichen Fragen...

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 60

    Aufgabe 2: Umsetzen einer mathematischen Formel

    Setzen Sie folgende Formel der Gauss'schen Glockenkurve 6 um.

    m ist der Mittelwert oder Erwartungswert (Peak der Kurve)s ist die Standardabweichung ("Breite" der Kurve)x ist der unabhngige Werte ist die Exponentialfunktion, in Matlab mit exp ausfhrbar. Die Wurzelfunktion heisst sqrt (Engl: squareroot)

    >> m = 3; s = 5; x = 2;>> y = ...

    Definition der EingabewerteWie muss die Formel notiert werden? Als Resultat sollte man 0.0782 erhalten.

    Musterlsung

    >> m = 3; s = 5; x = 2;>> y = 1/(s*sqrt(2*pi))*exp(-1/2*((x-m)/s)^2)

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 61

    Aufgabe 3: berprfung eines magischen Quadrates

    berprfen Sie die Korrektheit eines 7x7 magischen Quadrates: Die Summe aller Zeilen, Spalten undder beiden Diagonalen mssen gleich sein.

    >> m = magic(7);>> ...

    Musterlsung

    >> m = magic(7);>> sum(m) % Summe in Spalten>> sum(m') % m transponieren, um die Zeilensummen zu erhalten>> sum(diag(m)) % Summe in der Hauptdiagonalen>> sum(diag(fliplr(m))) % die andere Diagonale

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 62

    Zusammenfassung

    Die wichtigsten Merkpunkte und Befehle finden Sie wie gewohnt in derZusammenfassung.

    Merkpunkte

    Die Rangfolge fr die Ausfhrung verschiedener Operationen gehorcht denallgemeinen mathematischen Regeln (z.B. Punkt vor Strich), wie blich musshier mit Klammern gearbeitet werden, wenn eine andere Rangfolge notwendig ist.

    Die bersicht ber die Operatoren finden Sie mit docsearch 'arithmetic operators'

    Addition und Subtraktion ganzer Matrizen erfolgt Element fr Element.

    Will man ganze Matrizen Element fr Element multiplizieren oder dividieren, isteine spezielle Notation notwendig: a .* b beziehungsweise a ./ bAndernfalls fhrt Matlab eine Matrizenmultiplikation bzw. -division aus, diegemss linearer Algebra etwas anderes (und fr Anwendungen in der Psychologiekaum relevant) ist.

    Hilfesystem: In "Contents" unter Function reference > Mathematics >Elementary math findet man die Funktionsbersicht.

    Anweisungen

    sum: Summe

    min, max: Minimum und Maximum

    std: Standardabweichung

    sin, cos, tan etc.: trigonometrische Funktionen

    round: Rundung

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 63

    TestfragenBitte versuchen Sie zur berprfung ihres Verstndnisses folgende Fragen zu beantworten.

    BenutzeroberflcheMit welchem Befehl knnen Sie das Command Window lschen?

    clear

    clc

    home

    clrcmd

    Was knnen Sie im Workspace-Fenster NICHT tun?

    Variablen aus dem Workspace entfernen

    Den Inhalt von Variablen verndern

    Daten aus externen Quellen einlesen

    Berechnungen vornehmen

    Wie whlen Sie die Verzeichnisse aus, in denen Matlab nach Funktionen (m-Files) sucht?

    ber den Current Directory-Browser

    mit cd (change directory)

    ber den Menupunkt File > Set Path

    Hilfe-SystemFinden Sie im Hilfe-System die Antwort auf folgende Frage:Die Funktion zum Zeichnen eines dreidimensionalen Scatterplots lautet ___________ .

    MatrizenWelcher Befehl erzeugt die folgende Matrix a?

    a = [ 1 5 8 3, 6 6 7 1, 0 1 0 8]

    a = [ 1 5 8 3; 6 6 7 1; 0 1 0 8]

    a = ( 1 5 8 3; 6 6 7 1; 0 1 0 8)

    a = [ 1 6 0; 5 6 1; 8 7 0; 3 1 8 ]

    Welche Anweisungsfolge bewirkt, dass die abgebildete Matrix im Command Window ausgegeben wird?

    a=[0 8 3;3 5 5]; b=a'; b(1,:)=NaN; [a b]

    a=[0 8 3;3 5 5]; b=transpond(a); b(1,:)=[]; [a b]

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 64

    a=[0 8 3;3 5 5]; b=a'; b(1,:)=[]; [a b]

    a=[0 8 3;3 5 5]; b=a'; b=b(2:3,:); [a; b]

    Mathematische OperationenWelcher Code entspricht der folgenden Formel?

    y = 2*exp(-t/tau)/sqrt(x+1*x-1)

    y = 2*exp(-t/tau)/sqrt((x+1)*(x-1))

    y = 2(exp(-t/tau)/sqrt((x+1)*(x-1)))

    y = 2*e^(-t/tau)/sqrt((x+1)*(x-1))

  • Einfhrung in Matlab

    http://etools.fernuni.ch/matlab/ - Stand vom: 20.12.2011 65

    GlossarEEG:

    Elektro-Enzephalographie: Registrierung der GehirnstrmefMRI:

    Funktionale Magnetresonanzto