Einführung in MATLAB

Ähnliche Dokumente
INTELLIGENTE DATENANALYSE IN MATLAB

Einführung in MATLAB

INTELLIGENTE DATENANALYSE IN MATLAB. Einführung in MATLAB

Einführung in. Pierre Bayerl

2. Einführung in das Ingenieurtool MATLAB

Schülerworkshop Computertomographie Mathematik als Schlüsseltechnologie

10:Exkurs MATLAB / Octave

Matlab: eine kurze Einführung

Kurze Einführung in Octave

PPS "Bits on Air" 1. Teil, Matlab-Tutorial Vorbereitungsaufgaben (Lösungsvorschläge)

Übung 4: Einführung in die Programmierung mit MATLAB

Dr. Michael Lehn WS 2013/2014 Iris Häcker Klaus Stolle Institut für Numerische Mathematik Universität Ulm

Zweiter Teil des Tutorials. Workspace M-files Matrizen Flow Control Weitere Datenstrukturen Gemeinsames Beispiel erarbeiten

2 Matrizen und Vektoren

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Matlab Einführung Theorie Neuronaler Netze WS 11/12. Miriam Schmidt Institut für Neuroinformatik

Einführung in MATLAB

Ein kleiner Matlab Primer Frank Schimmel

Einführung in MATLAB zur Veranstaltung Einführung in die Numerik

Einführung in Matlab Was ist MATLAB? Hilfe Variablen

Einführung in MATLAB Blockkurs DLR:

Matlab Einführung Einführung in die Neuroinformatik SS 12. Miriam Schmidt Institut für Neuroinformatik

MATLAB Einführung. Numerische Methoden für ITET und MATL Dr. S. May, D. Devaud. ETH Zürich, Seminar for Applied Mathematics

Einführung in MATLAB. Grundlagen für die Übungen begleitend zur Vorlesung Neuroinformatik I

1. Einstieg in MATLAB

WiMa-Praktikum 1. Woche 8

Inhaltsverzeichnis. Ulrich Stein. Programmieren mit MATLAB. Programmiersprache, Grafische Benutzeroberflächen, Anwendungen

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

m-files sind Folgen von MATLAB-Anweisungen oder Daten-Files.

Einführung in Matlab Teil I

Matlab Einführung. Tobias Wunner

Informationsverarbeitung im Bauwesen

Grundlagen von MATLAB

Inhaltsverzeichnis. Ulrich Stein. Einstieg in das Programmieren mit MATLAB ISBN: Weitere Informationen oder Bestellungen unter

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel

3 Kurzeinführung in Matlab

Mathematik am Computer 4. Vorlesung Matlab: Teil 1

Einführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Mathematik am Computer 6. Vorlesung: Matlab, Teil I

Einführung in MATLAB Blockkurs DLR:

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Grundlagen MATLAB. Vorlesung Batteriemodellierung mit MATLAB

1 Konsole öffnen. 2 matlab & und return eingeben. 3 Konsole dauerhaft geöffnet lassen. 1 Menüpunkt File - Exit MATLAB oder. 2 quit (und return) oder

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Quadrieren Sie die Zahlen 3, pi, 1 und i mit Hilfe des Operators ^ und ziehen Sie aus den Ergebnissen jeweils die Wurzel.

Softwarepraktikum. zu Elemente der Mathematik. Carsten Rezny Institut für angewandte Mathematik Universität Bonn

Einführung in die Programmierung (MA8003)

Technische Mechanik mit Computern. Labor-Einführung

MATLAB-Kurs, Oktober Erstes Lösungsbeispiel

Signale und Systeme 1 (Erste Großgruppenübung)

Eine Einführung zum numerischen Programmieren mit Matlab

Jens Kappei. Vorlesung Numerische Basisverfahren 21./

Einführung in die Programmierung (MA8003)

Einführung in MATLAB für Maschinenbauer im ersten Semester. Aufgaben und Lösungen

Einführung in die Programmierung (MA8003)

Matlab: eine kleine Einführung

Praktikum zur Vorlesung: Numerische Mathematik für Lehramt SS Matlab: Fortsetzung. Jan Mayer. 4. Mai 2006

Octave/Matlab-Übungen

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Matlab Übersicht. Matlab steht für MATrix LABoratory, die Fa. The Mathworks wurde 1984 gegründet

Tipps und Tricks in MATLAB

Vektoren. 2.1 Darstellung. Kapitel Subtraktion und Addition

Matlab. Kap. I Basics of Matlab. Variablentypen und Nutzung Visualisierung in 2D und 3D. Jetzt geht s erst richtig los:

Strings. Daten aus Dateien einlesen und in Dateien speichern.

3 Matrizenrechnung. 3. November

Lineare Gleichungssysteme und Matrizen

Programmieren in MATLAB Mehr als nur ein Taschenrechner

MATLAB. 18. Mai 2010 MATLAB. Eine Einführung. Marina Schneider. Inhalt. Allgemeines zu MATLAB und erste Schritte. Vektoren und Matrizen.

Tipps und Tricks für Matlab

Modellierung und Programmierung 1

1 Starten und Installation von gnuplot

Einführung in Scilab und Scicos

Zyklen: break und continue

Lineare Algebra mit dem Statistikprogramm R

3 Schnellkurs in MATLAB

MATLAB Onlinevorlesung. Dipl.-Inf. (FH) Patrick Rogge Seite 1

Mathematik am Computer 7. Vorlesung: Matlab, Teil II

Einführung Programmierpraktikum C Michael Zwick

Funktionen in Matlab. Lehrstuhl für Angewandte Mathematik Sommersemester und 29. Mai 2008

Matlab - eine kurze Einführung

Eine kleine Anleitung zum Programmieren mit MATLAB

MATLAB Ferienkurs WS 2010/2011

Vektoren und Matrizen

2. Programmieren in MATLAB (1)

Was ist MATLAB? Typische Anwendungen

Einführung in die Programmierung (MA8003)

Datei-Verarbeitung. Peter Sobe 60

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Lineare Algebra. 2. Übungsstunde. Steven Battilana. battilana.uk/teaching

Matlab-Seminar: Grundlagen

Inhaltsverzeichnis. Angelika Bosl. Einführung in MATLAB/Simulink. Berechnung, Programmierung, Simulation. ISBN (Buch):

Anwendungssoftware III (MATLAB)

Brückenkurs Programmieren

Numerische Lineare Algebra - Matlab-Blatt 1

Matrizen. a12 a1. a11. a1n a 21. a 2 j. a 22. a 2n. A = (a i j ) (m, n) = i te Zeile. a i 1. a i 2. a i n. a i j. a m1 a m 2 a m j a m n] j te Spalte

3 Skripte und Plots. 3.1 Skripte in MATLAB. 3.2 Zweidimensionale Plots

Transkript:

Einführung in MATLAB

MATLAB - Eine Einführung Was ist MATLAB? Abkürzung für matrix laboratory reines Numerikprogramm für das Rechnen mit großen Zahlenfeldern (arrays) bzw. Matrizen Interpretersprache Werkzeug zur Erzeugung von graphischen Darstellungen (und -oberflächen) Was ist MATLAB nicht? MATLAB ist eigentlich kein Arithmetikprogramm für symbolisches Rechnen. (Allerdings gibt es inzwischen ein Zusatzpaket, welches symbolische Rechnung durch MAPLE ausführen läßt.) 17.01.2008 Matlab - Eine Einführung 2

Anwendungsgebiete von MATLAB Matrizenrechnung Probleme, die sich in Matrixformulierung lösen lassen: numerische Lösung von Differentialgleichungen Signalverarbeitung Regelungstechnik Statistik Systemidentifikation Neuronale Netze... Für spezielle Anwendungen gibt es Werkzeugkisten (toolboxes). 17.01.2008 Matlab - Eine Einführung 3

Haupt-Arbeitsfenster After the >> symbol, you can type the commands 17.01.2008 Matlab - Eine Einführung 4

Anzeige- Fenster Grafik (Figure) Fenster M-file Editor/Debugger - Fenster Erzeugen und Editieren von Skripts 17.01.2008 Matlab - Eine Einführung 5

Hilfe Hilfe erhalten: MATLAB main menu -> Help -> MATLAB Help 17.01.2008 Matlab - Eine Einführung 6

Hilfe Schreibe eins der folgenden Kommandos ins command window : help lists all the help topics help topic provides help for the specified topic help command provides help for the specified command helpwin opens a separate help window for navigation Lookfor keyword search all M-files for keyword Online resource 17.01.2008 Matlab - Eine Einführung 7

Befehlseingabe in MATLAB Skriptsprache: Eingabe erfolgt durch einen ASCII-Text (sog..m-file) oder über die Tastatur. Skripte mit Parameterübergabe heißen Funktionen. Befehl wird nach dem Enter -Zeichen sofort ausgeführt. Durch den Befehl wird das gleichnamige.m-file gestartet, welches wiederum eine Folge von Befehlen enthält. Also: Jedes selbstgeschriebene Programm erweitert Matlab um einen neuen Befehl! Grundlegende Funktionen sind eingebaut, brauchen also kein.m-file 17.01.2008 Matlab - Eine Einführung 8

Datenstruktur in MATLAB Alle Variablen sind mehrdimensionale Felder von Fließkommazahlen doppelter Präzision (64 Bit). Ausnahme: Strings sind 1xN-Felder vom Typ Character (8-Bit-ASCII-Zeichen). In der Bildverarbeitung werden oft Felder von vorzeichenlosen 8-Bit-Ganzzahlen verwendet. Dimensionierung zu keiner Zeit erforderlich! IEEE-Standard 17.01.2008 Matlab - Eine Einführung 9

Dateneingabe über die Tastatur 1. Eingabe von Skalaren (Testen Sie selbst!): >> a=2 a= 2 >> a=sqrt(-16) a= 0 + 4.0000i Ein Semikolon (;) unterdrückt die Ausgabe des Ergebnisses: >> a=1.2345 * 2; Nachträgliche Abfrage: >> a a= >> 2.4690 17.01.2008 Matlab - Eine Einführung 10

Dateneingabe über die Tastatur 2. Eingabe von Vektoren: >> b=[2,4,6,8] b= 2 4 6 8 Dies ist ein (1x4)-Vektor, also ein Zeilenvektor. Im Unterschied dazu ist >> b2=[2;4;6;8] b2= 2 4 6 8 ein (4x1)-Vektor, also ein Spaltenvektor. >> 17.01.2008 Matlab - Eine Einführung 11

Dateneingabe über die Tastatur 3. Der Doppelpunkt: >> b=2:2:8 b= 2 4 6 8 Der : erzeugt Zeilenvektoren. Die Parameter sind Anfang, Schrittweite und Ende der Folge. Alternative Befehle: linspace logspace Die Parameter sind Anfang, Ende und Anzahl : Vektor mit linear gestaffelten Elementen Vektor mit logarithmisch gestaffelten El. >> b2=linspace(1,3,5) b2 = 1.00 1.50 2.00 2.50 3.00 17.01.2008 Matlab - Eine Einführung 12

Dateneingabe über die Tastatur 4. Eingabe von Matrizen: >> A=[1 2 3; 4 5 6; 7 8 0] A= 1 2 3 4 5 6 7 8 0 Dies ist ein (3x3)-Matrix. Die Transposition erfolgt mit dem Apostroph: >> A2 =[1 2 3; 4 5 6; 7 8 0] A2= 1 4 7 2 5 8 3 6 0 >> 17.01.2008 Matlab - Eine Einführung 13

Teilen von Matrizen; Indices Lineare Indizierung: >> A(6) liefert die 8 (spaltenweise Zählung) Indizierung über Zeile und Spalte: A= 1 2 3 4 5 6 7 8 0 >> A(2,3) liefert die 6: Name(Zeile, Spalte) Indizierung mit Vektoren: >> A([1,3],2) hier ist der Index ein Vektor! >> A(2,:) liefert die gesamte 2. Zeile >> A(:,3) liefert die gesamte 3. Spalte >> A(4:end) liefert alle Elemente ab dem 4. 17.01.2008 Matlab - Eine Einführung 14

Manipulation von Matrizen Die Änderung von Werten erfolgt durch Zuweisung mit Indices: >> A(4,4)=28 A = 1 2 3 0 4 5 6 0 7 8 0 0 0 0 0 28 Beachte: Die Matrixgröße wird zur Laufzeit automatisch angepaßt! Informationen über Matrizen (Variablen): who, whos size(a) length(a) welche Variablen gibt es / Größe Dimension einer Variablen Länge einer Variablen 17.01.2008 Matlab - Eine Einführung 15

Matrizen automatisch erzeugen Weitere hilfreiche Befehle zum Erzeugen spezieller Matrizen: zeros Matrix gefüllt mit Nullen ones Matrix gefüllt mit Einsen eye Einheitsmatrix rand Matrix mit zufälligen Elementen (gleichverteilt in [0,1]) randn Matrix mit zufälligen Elementen (normalverteilt) magic Magisches Quadrat repmat periodische Fortsetzung Probieren Sie: >> x=rand(1,4) >> plot(x) 17.01.2008 Matlab - Eine Einführung 16

Besondere Variable Die folgenden Variablen sind beim Start von Matlab vorhanden, können aber nachträglich überschrieben werden(!): pi =3.14159..., i,j imaginäre Einheit inf unendlich NaN not a number eps Fließkomma-Rechengenauigkeit (IEEE: 2-52) realmax größte Fließkommazahl (IEEE: 2 1024-1) realmin kleinste Fließkommazahl (IEEE: 2-1022 ) flops Anzahl der ausgeführten FK-Operationen computer Computertyp und Betriebssystem 17.01.2008 Matlab - Eine Einführung 17

Der Arbeitsbereich Alle unter dem Prompt >> oder in Skripten erzeugten Variablen liegen im sog. Arbeitsbereich (workspace). Funktionen haben ihren eigenen, lokalen Arbeitsbereich. Abfrage der im Arbeitsbereich befindlichen Variablen: >> who Your variables are: a b b2 c Detailliertere Aufstellung: whos Löschen des Arbeitsbereiches: clear 17.01.2008 Matlab - Eine Einführung 18

Laden und Speichern save speichert den gesamten Arbeitsbereich unter matlab.mat im aktuellen Verzeichnis. save fname speichert den gesamten Arbeitsbereich unter fname.mat im aktuellen Verzeichnis. save fname A b speichert nur die Variablen A und b unter fname.mat im aktuellen Verzeichnis. save A.xyz A -ascii speichert die Variable A unter A.xyz als ASCII-Tabelle. load lädt alle Variablen aus matlab.mat in den Arbeitsbereich. load fname lädt alle Variablen aus fname.mat in den Arbeitsbereich. load A.xyz lädt die ASCII-Tabelle A.xyz in die Variable A. 17.01.2008 Matlab - Eine Einführung 19

Arithmetische Ausdrücke Verknüpfungszeichen für Matrizen: + Addition - Subtraktion * Matrix-Multiplikation ^ Matrix-Potenzierung / Matrix-Division \ Matrix-Linksdivision komplex-konjugierte Transposition Elementweise Verknüpfungen:.* elementweise Multiplikation.^ elementweise Potenzierung./ elementweise Division 17.01.2008 Matlab - Eine Einführung 20

Geben Sie bitte jetzt ein:»clear»load Loading from: matlab.mat»who Your variables are: x y A»x x= -1 02»A A=» 1 2 3 4 5 6 7 8 0 17.01.2008 Matlab - Eine Einführung 21

»B=A? 17.01.2008 Matlab - Eine Einführung 22

»B=A B=» 1 4 7 2 5 8 3 6 0 17.01.2008 Matlab - Eine Einführung 23

»B=A B=»C=A+B 1 4 7 2 5 8 3 6 0? 17.01.2008 Matlab - Eine Einführung 24

»B=A B= 1 4 7 2 5 8 3 6 0»C=A+B C= 2 6 10 6 10 14 10 14 0» A und B wurden addiert. 17.01.2008 Matlab - Eine Einführung 25

»B=A B= 1 4 7 2 5 8 3 6 0»C=A+B C= 2 6 10 6 10 14 10 14 0»D=A*B? 17.01.2008 Matlab - Eine Einführung 26

»B=A B= 1 4 7 2 5 8 3 6 0»C=A+B C= 2 6 10 6 10 14 10 14 0»D=A*B D=» 14 32 23 32 77 68 23 68 113 D ist das Matrixprodukt von A und B. 17.01.2008 Matlab - Eine Einführung 27

»F=A.*B F= 1 8 21 8 25 48 21 48 0 elementweise Multiplikation von A und B»G=A./B Warning: Divide by zero. G = 1.0000 0.5000 0.4286 2.0000 1.0000 0.7500 2.3333 1.3333 NaN elementweise Division von A und B»w=x.*x w= 1 0 4 elementweise Multiplikation zweier Vektoren 17.01.2008 Matlab - Eine Einführung 28

»x x=»y=x-1-1 0 2? 17.01.2008 Matlab - Eine Einführung 29

»x x= -1 0 2»y=x-1 y= -2-1 1» Von jedem Element von x wurde 1 subtrahiert. 17.01.2008 Matlab - Eine Einführung 30

»x x= -1 0 2»y=x-1 y= -2-1 1»x * y? 17.01.2008 Matlab - Eine Einführung 31

»x x= -1 0 2»y=x-1 y= -2-1 1»x * y ans=» 4 Das Skalarprodukt von x und y ist gleich 4. 17.01.2008 Matlab - Eine Einführung 32

Außerdem gibt es zwei äußere Produkte von x und y:»x * y ans=»x * y 4?»y * x? 17.01.2008 Matlab - Eine Einführung 33

Außerdem gibt es zwei äußere Produkte von x und y:»x * y ans=»x * y ans=»y * x ans=» 4 2 1-1 0 0 0-4 -2 2 2 0-4 1 0 2-1 0 2 17.01.2008 Matlab - Eine Einführung 34

Natürlich kann man einen Vektor mit einem Skalar multiplizieren:»pi * x ans=» -3.1416 0 6.2832 17.01.2008 Matlab - Eine Einführung 35

Natürlich kann man einen Vektor mit einem Skalar multiplizieren:»pi * x ans=»b=a * x ans= 5 8-7» -3.1416 0 6.2832... oder mit einer Matrix: 17.01.2008 Matlab - Eine Einführung 36

Matrix- Division Es gibt zwei Arten von Matrixdivision in MATLAB: X = A \ B bedeutet X = inv(a) * B Hier ist X die Lösung von A * X = B. Diese Linksdivision ist definiert, wenn A genauso viele Zeilen hat, wie B. Falls die Matrix A quadratisch ist, wird sie nach dem Gaußschen Eliminationsverfahren berechnet. Hat A mehr oder weniger Zeilen als B, dann ist X die Lösung des überoder unterbestimmten Gleichungssystems A*X=B im Sinne kleinster Quadrate. X = A / B ist definiert durch A/B = (B \A ). Hier ist X die Lösung von X * A = B. 17.01.2008 Matlab - Eine Einführung 37

Lösen Sie nun das folgende Gleichungssystem: 1 z 1 + 2 z 2 + 3 z 3 = 5 4 z 1 + 5 z 2 + 6 z 3 = 8 7 z 1 + 8 z 2 + 0 z 3 = - 7» Zum Gedächtnis: A= 1 2 3 4 5 6 7 8 0 b= 5 8-7 17.01.2008 Matlab - Eine Einführung 38

Lösen Sie nun das folgende Gleichungssystem: 1 z 1 + 2 z 2 + 3 z 3 = 5 4 z 1 + 5 z 2 + 6 z 3 = 8 7 z 1 + 8 z 2 + 0 z 3 = - 7»z= A\b Zum Gedächtnis: A= 1 2 3 4 5 6 7 8 0 b= 5 8-7? 17.01.2008 Matlab - Eine Einführung 39

Lösen Sie nun das folgende Gleichungssystem: 1 z 1 + 2 z 2 + 3 z 3 = 5 4 z 1 + 5 z 2 + 6 z 3 = 8 7 z 1 + 8 z 2 + 0 z 3 = - 7»z= A\b z= -1 0 2» Zum Gedächtnis: A= 1 2 3 4 5 6 7 8 0 b= 5 8-7 17.01.2008 Matlab - Eine Einführung 40

Lösen Sie nun das folgende Gleichungssystem: 1 z 1 + 2 z 2 + 3 z 3 = 5 4 z 1 + 5 z 2 + 6 z 3 = 8 7 z 1 + 8 z 2 + 0 z 3 = - 7»z= A\b z= -1 0 2» Es ist z gleich x. Das überrascht uns kaum, weil wir x über x = A*b berechnet haben. Zum Gedächtnis: A= 1 2 3 4 5 6 7 8 0 b= 5 8-7 17.01.2008 Matlab - Eine Einführung 41

Vergleichsoperatoren: Logische Ausdrücke = = gleich? ~ = nicht gleich? > größer? >= größer gleich? usw. Logische Verknüpfungen: & logisches UND logisches ODER ~ logisches NICHT xor logisches EXKLUSIV-ODER 17.01.2008 Matlab - Eine Einführung 42

Boolesche Variable Ergebnisse von Logik-Operationen werden in 0-1-Matrizen gespeichert: >> L=(A>=5) L = 0 0 0 0 1 1 1 1 0 Zum Gedächtnis: A= 1 2 3 4 5 6 7 8 0 17.01.2008 Matlab - Eine Einführung 43

Boolesche Variable Ergebnisse von Logik-Operationen werden in 0-1-Matrizen gespeichert: >> L=(A>=5) L = 0 0 0 0 1 1 1 1 0 Diese Boole-Matrix kann zur Indizierung verwendet werden: >> B=A(L) B = 7 5 8 6 >> Zum Gedächtnis: A= 1 2 3 4 5 6 7 8 0 17.01.2008 Matlab - Eine Einführung 44

Graphische Darstellung MATLAB verfügt über umfangreiche Funktionen zum Erzeugen von graphischen Darstellung: einfache Darstellung von Meßreihen in kartesischen Koordinaten Polarplots 3-dimensionale, farbcodierte Pixelbilder 3D-Flächen mit Höhenlinien beleuchtete 3D-Flächen mit Schatten und Glanzlichtern 17.01.2008 Matlab - Eine Einführung 45

Graphische Darstellung Matlab hat die Funktion plot( ), die Werte in der xy-ebene zeichnet Allgemeines Format: plot(x,y, symbols ) Die Symbole repräsentieren die Farbe, die Punktform und den Linien-Typ. 17.01.2008 Matlab - Eine Einführung 46

Plot Symbole Farben Symbole Linien y yellow. point - solid line m mag o circle : dots c cyan x xmark -. line dot r red + plus - - dashes g green * star b blue s square w white d diamond k black v triangle down ^ triangle up < left < right p pentagram h hexagram 17.01.2008 Matlab - Eine Einführung 47

Plot Beispiel t = linspace(0, 2*pi); y1 = cos(t); y2 = sin(t); y3 = y1.* y2; plot(t,y1, - ) ; plot(t,y3, r: ) 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 1 2 3 4 5 6 7 0.5 0.4 0.3 0.2 0.1 0-0.1-0.2-0.3-0.4 - results in 100 data points - cosine of the points - sine of the points - cos(t)*sin(t) - plots cosine verse t with a straight line. - plots cosine*sine verse t with red dots. -0.5 0 1 2 3 4 5 6 7 17.01.2008 Matlab - Eine Einführung 48

Der plot-befehl Den Verlauf von y1 zeigt man mit plot an:»plot(t,y1) Wendet man dann plot auf y3 an:»plot(t,y3) 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 1 2 3 4 5 6 7 0.5 0.4 0.3 0.2 0.1 0-0.1-0.2-0.3-0.4-0.5 0 1 2 3 4 5 6 7 so stellt man fest, dass der erste Graph überschrieben wurde! Um dies zu verhindern, muss man nach dem ersten plot die Eigenschaft hold auf on setzen: 1»hold on»plot(t,y3)»hold off 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 1 2 3 4 5 6 7 17.01.2008 Matlab - Eine Einführung 49

Beispiel: plot(t,y1, -,t,y2, g*,t,y3, r-. ) - plots all 3 axis( [0 2*pi -1.5 1.5]) - adds axes legend( cos(t), sin(t), cos(t)*sin(t) ) - legend Beachte: [ ] Feld ( ) Funktion Symbole. 1.5 1 0.5 0-0.5 cos(t) sin(t) cos(t)*sin(t) -1-1.5 0 1 2 3 4 5 6 17.01.2008 Matlab - Eine Einführung 50

Funktion Gestaltung des Plots Das Graphikfenster wird mit»clf zurückgesetzt. Wenden Sie plot jetzt wie folgt an:»plot(t,y1, r--,t,y2, ro ) Anschließend kann man z.b. Titel und Achsenbeschriftung hinzufügen:»title( Sinus und Cosinus )»xlabel( Zeit t [s] )»ylabel( Funktion ) Sinus und Cosinus 1 0.5 0-0.5-1 0 1 2 3 4 5 6 7 Zeit t [s] 17.01.2008 Matlab - Eine Einführung 51

Speichern des Plots MATLAB besitzt Hardcopy-Routinen für viele Formate. Sinnvoll ist z.b. das PostScript-Format:»print meinbild -depsc speichert das aktuelle Graphikfenster als farbige Encapsulated Postscript -Datei meinbild.eps. Solche Dateien können mit dem Programm GhostView betrachtet und ausgedruckt oder in LATEX-Dokumente eingebunden werden. 17.01.2008 Matlab - Eine Einführung 52

Speichern des Plots»print -dbitmap kopiert das aktuelle Graphikfenster in das Windows-Clipboard. Von dort kann man es sofort mit Strg-V in Powerpoint importieren: 17.01.2008 Matlab - Eine Einführung 53

»print -dbitmap Speichern des Plots kopiert das aktuelle Graphikfenster in das Windows-Clipboard. Von dort kann man es sofort mit Strg-V z.b. in Powerpoint importieren: 17.01.2008 Matlab - Eine Einführung 54

Übungsaufgabe Erzeugen Sie einen Vektor y, dessen Komponenten die Abtastwerte zweier überlagerter Schwingungen repräsentieren! Zeitintervall: t=1..5 s Abtastrate: fa=50hz Sinusfrequenzen f 1 =1Hz und f 2 =2,5Hz Erzeugen Sie einen weiteren Vektor z, der zusätzlich (additiv) weißes Rauschen der Leistung p=0,2 enthält.» t=1:0.02:5;» y=sin(2.*pi.*1.*t)+sin(2.*pi.*2.5.*t); 3 2 1» r=randn(1,length(t)).*sqrt(0.2);» z=y+r; 0-1 -2-3» plot(t,z,t,y) 1 1.5 2 2.5 3 3.5 4 4.5 5 17.01.2008 Matlab - Eine Einführung 55

Gestaltung des Plots Das Graphikfenster wird mit»clf zurückgesetzt. Wenden Sie plot jetzt wie folgt an:»plot(t,y, r--,t,z, ro ) 17.01.2008 Matlab - Eine Einführung 56

Gestaltung des Plots Das Graphikfenster wird mit»clf zurückgesetzt. Wenden Sie plot jetzt wie folgt an:»plot(t,y, r--,t,z, ro ) Fügen Sie anschließend Titel, Achsenbeschriftung und Legende hinzu:»title( Überlagerte Schwingungen )»xlabel( Zeit t [s] )»ylabel( Auslenkung [willk. Einh.] )»legend('theorie','meßwerte') 17.01.2008 Matlab - Eine Einführung 57

Speichern des Plots MATLAB besitzt Hardcopy-Routinen für viele Formate. Sinnvoll ist z.b. das PostScript-Format:»print meinbild -depsc speichert das aktuelle Graphikfenster als farbige Encapsulated Postscript -Datei meinbild.eps. Solche Dateien können mit dem Programm GhostView betrachtet und ausgedruckt oder in LATEX-Dokumente eingebunden werden. 17.01.2008 Matlab - Eine Einführung 58

»print -dbitmap Speichern des Plots kopiert das aktuelle Graphikfenster in das Windows-Clipboard. Von dort kann man es sofort mit Strg-V in Powerpoint importieren: 17.01.2008 Matlab - Eine Einführung 59

Auslenkung [willk. Einh.]»print -dbitmap Speichern des Plots kopiert das aktuelle Graphikfenster in das Windows-Clipboard. Von dort kann man es sofort mit Strg-V in Powerpoint importieren: 3 2 Überlagerte Schwingungen Theorie Meßwerte 1 0-1 -2-3 1 1.5 2 2.5 3 3.5 4 4.5 5 Zeit t [s] 17.01.2008 Matlab - Eine Einführung 60

Polynome The polynomials are represented by their coefficients in MATLAB Consider the following polynomial: A(s) = s ^ 3 + 3 * s ^ 2 + 3 * s + 1; If s is scalar: use scalar operations A = s ^ 3 + 3 * s ^ 2 + 3 * s + 1; If s is a vector or a matrix: use array or element by element operation A = s.^ 3 + 3 * s.^ 2 + 3.* s + 1; Function polyval(a,s): evaluate a polynomial with coefficients in vector a for the values in s 17.01.2008 Matlab - Eine Einführung 61

Polynomials MATLAB: A(s) = s ^ 3 + 3 * s ^ 2 + 3 * s + 1 >> s = linspace(-5,5,100); >> coeff = [1 3 3 1]; >> A = polyval(coeff,s); >> plot(s,a) >> xlabel('s') >> ylabel('a(s)') 17.01.2008 Matlab - Eine Einführung 62

Polynome Operation MATLAB Command Description Addition C = A + B Sum of polynomial A and B, the coefficient vectors must have the same length. Scalar Multiple B = 3 * A Multiply the polynomial A by 3. Polynomial Multiplication Polynomial Division Derivatives C = conv(a, B) [q,r] = deconv(a,b) polyder(a) polyder(a,b) [n,d] = polyder(b,a) Returns the coefficient vector for the resulting from the product of polynomial A and B. Returns the long division of A and B. q is the quotient polynomial coefficient, and r is the remainder polynomial coefficient. Returns the coefficients of the derivative of the polynomial A. Returns the coefficients of the derivative of the product of A and B. Returns the derivative of ratio B/A, represented as N/D. Find Roots roots(a) Returns the roots of the polynomial A in column vector form. Find Polynomials Poly(r) Returns the coefficient vector of the polynomial having roots r 17.01.2008 Matlab - Eine Einführung 63

Programmieren in Matlab Ein Programm ist eine Folge von Anweisungen. Matlab Programs werden in scripts gespeichert. Ein script ist ein File mit der Endung.m 17.01.2008 Matlab - Eine Einführung 64

Bedingung If-Anweisung if condition End statements condition ist ein Boolscher Ausdruck 17.01.2008 Matlab - Eine Einführung 65

Bus-Fahrscheine Given the following bus fare schedule: Regular fare $1.50 Children under 5 free Youth fare (ages 5-17) $0.85 Senior fare (age 65+) $0.85 Goal: write a piece of code that determines a passenger's fare 17.01.2008 Matlab - Eine Einführung 66

Code for bus fare example %suppose age contains the passenger's age fare = 1.50; if age < 5 fare = 0; disp('under 5, free') end if (age >= 5 & age <= 17) age >= 65 fare = 0.85; disp('discount fare') end 17.01.2008 Matlab - Eine Einführung 67

Schleifen Allgemeine Form einer while Schleife while condition end statements 17.01.2008 Matlab - Eine Einführung 68

Summe der Quadrate von 1 bis 20 sum = 0; n = 1; while n <= 20 sum = sum + n^2; n = n + 1; end disp([ Die Summe ist ', num2str(sum)]) 17.01.2008 Matlab - Eine Einführung 69

for Schleifen for counter = first : last end statements oder for counter = first : incr : last end statements 17.01.2008 Matlab - Eine Einführung 70

Beispiel einer for Schleife: Summe der Quadrate von 1 bis 20 sum = 0; for n = 1 : 20 sum = sum + n^2; end disp([ Die Summe ist ', num2str(sum)]) 17.01.2008 Matlab - Eine Einführung 71

Beispiel: Fibonacci Zahlen 1, 1, 2, 3, 5, 8, Die ersten beiden Fibonacci Zahlen sind 1, 1. Jede weitere Fibonacci Zahl ist die Summe ihrer beiden Vorgänger. Aufgabe: Erzeuge in Matlab die ersten N Fibonacci Zahlen 17.01.2008 Matlab - Eine Einführung 72

Fibonacci Zahlen N = 10; fib = [1 1]; for k = 3 : N fib(k) = fib(k-1) + fib(k-2); end disp([ Die ersten ', num2str(n), ' Fibonacci Zahlen sind: ']) disp(fib) 17.01.2008 Matlab - Eine Einführung 73

Programmflusssteuerung: break zum vorzeitigen verlassen einer for- bzw. while-schleife continue zum Sprung in die nächste Iteration

Funktionen: Matlab bietet die Möglichkeit umfangreiche Aufgaben in Unterprogramme aufzuteilen dazu Definition von Funktionen, die jeweils in einer eigenen Datei abgelegt werden aber auch Definition von Funktionen innerhalb von Unterprogrammen möglich

Funktionen: Dateiname testfunktion.m Dateikopf function [A, B] = testfunktion(c,d,e); A =... B =... Aufruf der Funktion im eigentlichen Programm durch [M, N] = testfunktion (A,B,C);

Beispiel: Bisektion function [xvect,xdif,fx,nit] = bisect (a,b,toll,nmax,fun) err=toll+1; nit=0; xvect=[]; fx=[]; xdif=[]; while (nit < nmax & err > toll) nit=nit+1; c=(a+b)/2; x=c; fc=eval(fun); xvect=[xvect;x]; fx=[fx;fc]; x=a; if (fc*eval(fun) > 0) a=c; else b=c; end; err=abs(b-a); xdif=[xdif;err]; end return 17.01.2008 Matlab - Eine Einführung 77

Befehle zum Filemanagement Files können (in beliebigem Editor) geschrieben und in den Speicher geladen werden. echo on/off Echo aktiver m-files what Anzeige der Files im aktuellen Verzeichnis type - Anzeige des Fileinhalts 17.01.2008 Matlab - Eine Einführung 78

Matlab Files Es gibt verschiedene Typen von Files: Daten Files Matlab Files haben ihr eigenes Format Ascii-Files sind Standard Textfiles, die ausgedruckt werden können. m-files Programm Files. function files sind Funktionen ähnlich wie sin(x), cos(x), etc. 17.01.2008 Matlab - Eine Einführung 79

Daten Files Es gibt zwei Typen von Daten Files : Matlab Format ascii Format 17.01.2008 Matlab - Eine Einführung 80

Matlab Datenformat MatLab erzeut ein Datenfile mit der Bezeichnung filename.mat File kann geladen werden mit: load filename t = linspace(0, 2*pi) x = cos(t) save data1 t x clear what data1.mat load data1 17.01.2008 Matlab - Eine Einführung 81

ASCII Format Erzeugen mit save filename.dat ascii Laden mit load filename.dat ascii t = linspace(0 2*pi) x = sin(t) save data2.dat t x -ascii dir data2.dat clear load data2.dat -ascii 17.01.2008 Matlab - Eine Einführung 82