Matlab - eine kurze Einführung



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

Eine kurze Einführung in Matlab

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Mathematische Computer-Software

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Zeichen bei Zahlen entschlüsseln

Erstellen von x-y-diagrammen in OpenOffice.calc

Professionelle Seminare im Bereich MS-Office

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Stapelverarbeitung Teil 1

Hilfreiche Funktionen

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

2. ZELLINHALTE UND FORMELN

Erstellen der Barcode-Etiketten:

Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung.

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

1 Vom Problem zum Programm

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Der neue persönliche Bereich/die CommSy-Leiste

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Wie Sie mit Mastern arbeiten

Kurzeinführung LABTALK

Computeria Solothurn

Erwin Grüner

Schritt 1 - Registrierung und Anmeldung

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

I Serverkalender in Thunderbird einrichten

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

Wie halte ich Ordnung auf meiner Festplatte?

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Anwendungsbeispiele Buchhaltung

Lineare Gleichungssysteme

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

ARAkoll 2013 Dokumentation. Datum:

Visio Grundlagen. Linda York. 1. Ausgabe, Oktober 2013

Berechnungen in Access Teil I

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Speichern. Speichern unter

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Eine Anwendung mit InstantRails 1.7

Anleitung für das Content Management System

Erste Schritte mit CVP 9.0

Informatik I Tutorial

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Informatik 1 Tutorial

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

IBIS Professional. z Dokumentation zur Dublettenprüfung

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

= {} +{} = {} Widerstand Kondensator Induktivität

Stand: Adressnummern ändern Modulbeschreibung

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Simplex-Umformung für Dummies

Leichte-Sprache-Bilder

Einführung in die Programmierung (MA8003)

Fallbeispiel: Eintragen einer Behandlung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Comic Life 2.x. Fortbildung zum Mediencurriculum

Kapitel 15. Lösung linearer Gleichungssysteme

2. Word-Dokumente verwalten

Windows 7 Winbuilder USB Stick

Kurz-Anleitung. Die wichtigsten Funktionen. Das neue WEB.DE - eine Übersicht. s lesen. s schreiben. Neue Helfer-Funktionen

Primzahlen und RSA-Verschlüsselung

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

OP-LOG

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Import und Export von Übergängern

4.1 Wie bediene ich das Webportal?

Excel Pivot-Tabellen 2010 effektiv

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

Pfötchenhoffung e.v. Tier Manager

Symbolbearbeitung mit EPLAN 5.60/5.70 DIC_***D.SYM

Variablen & erweiterte Aktionen nutzen

Excel Funktionen durch eigene Funktionen erweitern.

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!!

Erstellen einer digitalen Signatur für Adobe-Formulare

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Mediator 9 - Lernprogramm

Dossier: Rechnungen und Lieferscheine in Word

Einfache statistische Auswertungen mit dem TI-Nspire

Informationen zu den regionalen Startseiten

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Transkript:

Matlab - eine kurze Einführung Helke Karen Hesse, Thomas Dunne helke.hesse@iwr.uni-heidelberg.de, thomas.dunne@iwr.uni-heidelberg.de 13.11.2006 1 /

Gliederung Überblick Grundlegende Syntax Variablen Vektoren Matrizen Logische Vergleiche Operatoren Schleifen Dateien: Skripte und Funktionen Funktionen Plotten Hilfe Software & freie Alternativen 2 /

Überblick Matlab = MATrix-LABoratory Matrixorientiertes Softwaresystem Berechnung viele grundlegende Funktionen stehen zur Berechnung zur Verfügung Visualisierung vielfältige, einfache realisierbare Datenausgabe Programmierung Möglichkeit, eigene Programme in Matlab zu erstellen 3 /

Variablen I Variablen werden angelegt durch Zuordnung von Werten. Variablenamen müßen mit einem Buchstaben anfangen, ansonsten dürfen Buchstaben, Zahlen und Unterstriche benutzt werden. Es wird zwischen Groß- und Kleinschreibung unterschieden, d.h. A a Variable anlegen und Wert zuordnen >> a = 3.14159 Variable ausgeben: >> a ergibt: a = 3.14159 Schöner ausgeben: >> disp([ Variable a =,num2str(a)]) ergibt: Variable a = 3.14159 4 /

Variablen II Wert zuordnen mit Semikolon >> a = 3.14159; >> Wert zuordnen ohne Semikolon >> a = 3.14159 a = 3.14159 >> Mehrere Zuordnungen (oder Befehle) in einer Zeile nur mit Semikolon >> a = 3.14159;b = 2.71828;c = a + b;d = a b; >> 5 /

Vektoren I Explizite Eingabe eines Zeilenvektors: a = [1, 2,3] liefert den Vektor a = ` 1 2 3 Explizite Eingabe eines Spaltenvektors: b = [1;2;3] liefert den Vektor b = @ Eingabe spezieller Vektoren: a = 1 : 4 liefert den Vektor a = ` 1 2 3 4 a = 1 : 2 : 5 liefert den Vektor a = ` 1 3 5 z } { Schrittweite Die Länge eines Vektors a wird mit length(a) abgefragt Wenn z.b. a = 1 : 10, dann ist die Länge des Vektors: length(a) = 10 Zugriff auf i-te Komponente des Vektors a mit Klammern : a(i) Wenn z.b. a = 1 : 10 = (1 2 3 4 5 6... 9 10), dann ist der fünfte Eintrag: a(5) ր Zugriff auf Subvektor des Vektors a von Index i bis j : a(i : j) Wenn a = a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a9 a10, {z } dann ist der Subvektor a(5 : 8) = (a 5 a 6 a 7 a 8). 0 1 2 3 1 A 6 /

Vektoren II 1 Strich transponiert, wenn a = (1 2), dann a = 2 Multiplizieren von Vektoren a = [1; 2; 3], b = [4; 5; 6] «. 0 Komponentenweise: a. b = @ 1 4 1 2 5 A 3 6 Skalarprodukt a T b : a b = 1 4+2 5+3 6 0 Matrixprodukt ab T : a b = @ 1 4 2 5 3 6 2 4 2 5 2 6 3 4 3 5 3 6 1 A 7 /

Matrizen I «1 2 3 4 A = [1,2, 3,4;0,1, 0,0;0,0, 1,0] ergibt Matrix A = 1 0 0 0 1 0 Lesen bzw. Schreiben von A ij : a = A(i, j) bzw. A(i, j) = 5; «1 0 Einheitsmatrix: I = eye (3) erzeugt I = 1 0 0 0 1 «Nullmatrix: A = zeros (3) erzeugt A = 0 0 0 «Nullmatrix: A = zeros (3, 2) erzeugt A = 0 0 Nullvektor a = zeros (1,5) erzeugt a = ( 0 0 0 0 0 ) «Eins-Matrix: A = ones (3) erzeugt A = 1 1 1 Eins-Matrix: A = ones (2,3) erzeugt A = 1 1 1 Eins-Vektor a = ones (1,4) erzeugt a = ( 1 1 1 1 ) 8 /

Matrizen II A = eye(3), B = [1,2,3,4; 0,1,0,0; 0,0,1,0] 1 0 0 1 2 3 4 ergibt A = 0 1 0 und B = 0 1 0 0 0 0 1 0 0 1 0 0 Strich transponiert: B ergibt @ 1 0 0 2 1 0 3 0 1 4 0 0 1 A Multiplikation: A B = 1 0 0 0 1 0 0 0 1 1 2 3 4 0 1 0 0 0 0 1 0 Komponentenweise: B. B = 1 4 9 16 0 1 0 0 0 0 1 0 9 /

Matrizen III «1 2 3 4 A = [1,2, 3,4;0,1, 0,0;0,0, 1,0] ergibt Matrix A = 1 0 0 0 1 0 Die Zahl der Zeilen und spalten einer Matrix A wird mit [z,s] = size(a) abgefragt Umwandeln einer Matrix A in einen Vektor (immer spaltenweise): A(:) Umformen in eine 2 6 Matrix (immer spaltenweise): reshape(a, 2,6) == 1 0 1 3 1 0 2 0 0 4 0 Lesen/Schreiben von A ij : a = A(i, j); A(i, j) = 5; Zugriff auf erste Zeile von A als Zeilenvektor: A(1, :) ergibt (1 2 3 4) Zugriff auf die letzten zwei Werte davon: A(1, 3:4) ergibt (3 4) «30 Zugriff auf dritte Spalte von A als Spaltenvektor: A(:, 3) ergibt 1 Submatrix Az1,s1 A, wobei z1,s1 die Indizes der linken oberen Ecke der z2,s2 Submatrix sind, und z2,s2 die Indizes der rechten unteren Ecke. Zugriff mittels A(z1:z2, s1:s2). Von A ist die Submatrix A1,2 A 1,3 A 2,2 A gesucht, 2,3 A(1:2, 2:3) liefert 2 3 1 0 10 /

Matrizen IV Zeilen und Spalten kann man an den Rändern einer Matrix dazukleben : Mit A = eye(3) klebe rechts und unten etwas dazu: B = [A,(10 : 12) ] und C = [A;(20 : 22)] «1 0 0 10 1 0 0 ergibt: B == 0 1 0 11 und C == 0 1 0 0 0 1 12 0 0 1 20 21 22 Beliebige Zeilen und Spalten kann man löschen durch die Zuweisung eines leeren Vektors. i-te Zeile löschen: A(i,:) = [ ] i-te Spalte löschen: A(:,i) = [ ] Obere und untere Dreiecksmatrizen einer Matrix A erhält man mit den Funktionen triu(a) und tril(a). Alternativ: triu(a, k) und tril(a, k), wobei k angibt ab welcher Nebendiagonale (ND) die Dreiecksmatrix angegeben werden soll. Die nullte Nebendiagonale (k = 0) ist die Hauptdiagonale. Die erste ND (k = 1) ist die erste rechts oberhalb davon. Die minus erste ND (k = 1) ist die erste links unterhalb davon. ( Also: triu(a) == triu(a, 0), tril(a) == tril(a, 0)) 1 5 9 13 A = reshape(1:16, 4,4) ergibt A == 2 6 10 14 3 7 11 15 4 8 12 16 1 5 9 13 1 0 0 0 triu(a) = 0 6 10 14 0 0 11 15 und tril(a) = 2 6 0 0 3 7 11 0 0 0 0 16 4 8 12 16 0 5 9 13 1 5 0 0 triu(a,1) = 0 0 10 14 0 0 0 15 und tril(a, 1) = 2 6 10 0 3 7 11 15 0 0 0 0 4 8 12 16 11 /

Logische Vergleiche für zwei Zahlen (z.b. a = exp(pi), b = piˆ(exp(1)). a gleich b? a == b a ungleich b? a = b a kleiner b? a<b a kleiner gleich b? a<= b größer und größer gleich analog... Und-Verknünfung mit dem &-Zeichen: (b < a) & (a < 1.035 b) Oder-Verknünfung mit dem -Zeichen: (b < a 0.6) (a + 0.6 < b) Negation mit dem -Zeichen: (a == b) 12 /

Operatoren Addieren, Subtrahieren, Multiplizieren, Dividieren: +,,,/ Potenzieren: xˆp, oder power(x, p) == x p, Bei Vektoren und Matrizen, komponentenweises Anwenden der Operatoren,/, ˆ mit Punkt davor: a. b, A. B Bei Vektoren und Matrizen, komponentenweises Anwenden der Operatoren +, ohne Punkt davor: a + b, A + B Beispiele: Jede Komponente von der Matrix A durch die entsprechende Komponente von B teilen: A./B Das ist nicht dasselbe wie A/B = A B 1 Die ersten fünf Quadratzahlen: a.ˆ2 (mit a = 1 : 5) Die ersten fünf Zweierpotenzen: 2.ˆa Operationen auf Subvektoren ausführen: Einser-Vektor anlegen: a = ones(1,10) liefert a = ( 1 1 1 1 1 1 1 1 1 1 ). Die Zahl 1 auf den Subvektor a(5 : 10) addieren: a(5 : 10) = a(5 : 10) + 1 liefert a = ( 1 1 1 1 1 2 2 2 2 2 ) Die Zahl 10 auf den Subvektor a(4 : 7) multiplizieren: a(4 : 7) = a(4 : 7) 10 liefert a = ( 1 1 1 10 10 20 20 2 2 2 ) Auf gleichem Wege können Operationen auf Submatrizen ausgeführt werden. «1 4 7 A=reshape(1:9,3,3) ergibt A = 2 5 8 3 6 9 «1 4 7 A(2:3, 1:2) = A(2:3, 1:2) 10 ergibt A = 20 50 8 30 60 9 13 /

Schleifen und Verzweigungen for - Schleifen: for i = 1 : n z = z + i; end; while - Schleifen: c = 0; a = 1;n = 0; while (c = a) c = a + 2ˆ( n); n = n + 1; end; if - Verzweigungen if (x> y) z = 1; elseif (x < y) z = 1; else %d.h. x == y z = 0; end; 14 /

Dateien für Skripte und Funktionen Um Zeit zu sparen, können Befehle in Dateien gespeichert werden. Die Dateien hören immer mit einem.m am Ende auf. Dateien können für zwei verschiedene Aufgaben benutzt werden: Als Funktionshülle: nur für die Definition von Funktionen. Als Skript: eine Ansammlung von Befehlen (ohne Funktions-Definitionen). Möglichst immer Kommentare machen, damit man nachher schneller versteht was da steht Kommentierte Zeilen fangen immer an mit einem Prozentzeichen : % (mit möglichen führenden Leerzeichen). Ganze Kommentar-Blöcke (d.h. Kommentare über mehrere Zeilen) werden mit einem %{ am Anfang und %} am Ende markiert. Dateien können nur im aktuellen Matlab-Verz. benutzt werden Skripte und Funktionen können immer abgebrochen werden mit <STRG>-C 15 /

Skripte Alle Befehle in der Datei werden aufgerufen durch den Aufruf der Datei in Matlab. Heisst die Datei z.b. befehle.m, dann erfolgt der Aufruf aller Befehle darin mit befehle. Das Skript kann auf alle vorherige Matlab Variablen zugreifen. Variablen, die im Skript erzeugt werden, sind nachher noch da. Der Befehl pause hält ein Skript an, bis <RETURN> gedrückt wird. Der Befehl pause(n) hält ein Skript für n Sekunden an. D.h. alle Befehle im Skript sind so, als ob man sie selbst eingetippt hätte. 16 /

Funktionen Es können beliebig viele Funktionen in eine Datei. Aber nur die erste Funktion kann von Aussen aufgerufen werden über den Namen der Datei Dafür kann die erste Funktion in der Datei die anderen Funktionen in der selben Datei aufrufen. Es können NUR Funktionen in der Datei definiert werden. Ausserhalb der Funktionen dürfen sonst keine Befehle stehen 17 /

Funktionen und grafische Ausgabe Definition einer Funktion, die (x + sin(x)) 2 ausrechnet: (neue Datei anlegen, noch nicht speichern) function erg = fun (x) erg = (x + cos(x)).ˆ2 return; (Speichern als fun.m.) Funktionsaufruf für das Argument x = 5: x = 5; y = fun(x); Grafische Ausgabe der Funktion auf dem Intervall [0,1]: x = 0 : 0.1 : 1; plot(x, fun(x), r ); Funktionen können mehr als ein Parameter haben: function erg = fun2(x, A, c)... Funktionen können mehr als ein Wert zurückgeben: function [erg1, e2, e3] = fun3(x)... 18 /

Funktionen in Matlab Eine Übersicht aller Funktionen mit doc functions. Skalare Funktionen sin, cos, tan, asin, acos, atan, exp, log(basis e), log2(basis 2), log10(basis 10), abs, sqrt, sign(vorzeichen), factorial, round(runden), floor(immer Abrunden), ceil(immer Aufrunden),... Vektorfunktionen sum (Summe aller Eintraege), mean (Mittelwert), max, min, prod (Produkt aller Eintraege), norm (Euklidischer Norm), length (Anzahl der Werte im Vektor),... Matrixfunktionen Vektorfunktionen werden auf die einzelnen Spalten angewendet, Ergebnisse werden in ein Zeilenvektor gespeichert. eye, ones, zeros, abs, inv, det, poly (charakteristisches Polynom), length (Anzahl der Spalten), [z, s] = size(a) (ergibt Zeilen und Spaltenzahl als Vektor), triu, tril 0 1 v 1 0 Diagonal-Matrix mit den Werten des Vektors v füllen: diag(v) == @... A 0 v n Singulärwertzerlegung von A: [U, S, V] = svd(a) U und V sind unitäre Matrizen, S ist eine Diagonal-Matrix. Der Aufruf s = svd(a) ergibt den Vektor s, welches die Diagonal-Einträge von S == diag(s) sind. Normen: Spaltennorm: norm(a, 1) == max(sum(abs(a)) Zeilennorm: norm(a,inf ) == max(sum(abs(a )) Frobeniusnorm: norm(a, fro ) == norm(a(:)) == sqrt(sum(diag(a A))) Größter Singulärwert in S: norm(a, 2) = max(svd(a)) 19 /

Plotten Um ein Vektor der Funktionswerte y gegen den Vektor der x-werte zu plotten: plot(x, y) x-werte sind z.b. x = 0 : 0.01 : 10 y-werte sind z.b. y = f (x), oder: n = length(x);y = zeros(1,n); for i = 1:n y(i) = f (x(i));end; Mehrere Listen an y-werte können in ein Matrix abgelegt werden, jede Zeile entspricht eine Reihe an y-werten. Beschriftungen Titel mit title( titeltext ) Achsen mit xlabel( x Achsentext ) und ylabel( y Achsentext ) Legenden mit legend( plot1, plot2, plot3,...) Strich/Linien-Art beim Plotten angeben mit plot(x, y, arttext ), Für eine rot gezogene Linie: plot(x, y, r ) Für grün mit Sternchen: plot(x, y, g ) Die Zeichenkette arttext ist eine Zusammensetzung aus Farbe, Strichart und Zeichenart: Weitere Farben: r (rot), g (grün), b (blau), k (Schwarz), y (yellow), m (mangenta), c (cyan) Weitere Strich-Arten: - (Linie), : (gepünktelt), -. (Linie und gepünktelt), (gestrichelt) Weitere Zeichen-Arten:. (Pünktchen), o (Kreischen), x (Kreuzchen), *, d, v, ˆ, p, h, <, >,... Mit jedem Plot-Befehl, wird das Plot-Fenster ganz neu gezeichnet. Um alte Plot-Ausgaben zu behalten, den Befehl hold on ausführen. Um wieder pro Plot-Befehl eine Plot-Ausgabe zu sehen, den Befehl hold off ausführen. Man kann das Ausgabefenster ( figure ) wechseln mit dem Befehl figure(i), wobei i die Fensternummer angibt. Normalerweise wird immer Fenster 1 benutzt, d.h. figure(1). Achsen können logarithmisch dargestellt werden: für eine logarithmische y-achse: semilogy für eine logarithmische x-achse: semilogx für logarithmische x- und y-achsen: loglog 20 /

Hilfe In Matlab: help eingeben für Hilfe zu einem bestimmten Befehl: help befehl oder ausführlicher: doc befehl Online: Wikipedia: http://de.wikipedia.org/wiki/matlab (Deutsch, kurz) Wikipedia: http://en.wikipedia.org/wiki/matlab (English, lang) Wikipedia Buch: http://en.wikibooks.org/wiki/programming:matlab Buch: http://en.literateprograms.org/category:programming_language:matlab Mathworks: http://www.mathworks.com/access/helpdesk/help/techdoc/learn_matlab/ Grundsätzlich hilft immer: Google : google:matlab primer : google:matlab tutorial : google:matlab Einführung 21 /

Software & Freie Alternativen Studenten-Version ist im Online-Shop des URZ der Universität Heidelberg erhältlich für 87,00 EUR Infos: http://web.urz.uni-heidelberg.de/unterstuetzung/softwareverteilung#ask Online-Shop: https://urz.asknet.de/cgi-bin/home Matlab im Shop: https://urz.asknet.de/cgi-bin/product/p13511203513stud Es gibt freie Software, die (in Grenzen) kompatibel ist. http://de.wikipedia.org/wiki/matlab#alternativen http://www.gnu.org/software/octave/ (für Linux, Mac, Windows) http://freemat.sourceforge.net/ (für Linux, Mac, Windows) http://www.scilab.org/ (u.a. für Linux, Mac, Windows) 22 /

ENDE /