INTELLIGENTE DATENANALYSE IN MATLAB



Ähnliche Dokumente
INTELLIGENTE DATENANALYSE IN MATLAB. Einführung in MATLAB

Einführung in MATLAB

INTELLIGENTE DATENANALYSE IN MATLAB. Einführung in MATLAB

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

Numerik-Programm, mittlerweile mit vielen Erweiterungen (Toolboxen) Matlab = Matrix Laboratory Sehr gute Doku (doc, help, lookfor)

Informationsverarbeitung im Bauwesen

Erwin Grüner

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

4 Vorlesung: Matrix und Determinante

Lineare Gleichungssysteme

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Programmierung in C. Grundlagen. Stefan Kallerhoff

Erstellen der Barcode-Etiketten:

2. Programmierung in C

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

Kapitel 15. Lösung linearer Gleichungssysteme

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

Mediator 9 - Lernprogramm

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Grundlagen der Programmiersprache C++

Mathematische Computer-Software

Einführung in MATLAB

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

10 Lesen und Schreiben von Dateien

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Eigenwerte und Eigenvektoren von Matrizen

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und -Adresse für den Fall, dass die Diskette nicht lesbar ist.

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Arbeiten mit UMLed und Delphi

Bedienung des Web-Portales der Sportbergbetriebe

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Matlab Einführung. Tobias Wunner

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Einführung in die Programmierung

1. So beginnen Sie eine Kalkulation

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Erster Schritt: Antrag um Passwort (s. Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Speicher in der Cloud

Lineare Gleichungssysteme

Handbuch zum Statistiktool Pentaho Stand: Dezember 2013

lineare-algeba.wxmx 1 / 7 Mathematik in wxmaxima Haftendorn Dez 2010

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

7.3 Einrichtung 13. Monatslohn. Auszahlung Ende Jahr / Ende der Beschäftigung

Einführung in das Arbeiten mit MS Excel. 1. Bearbeitungs

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Angewandte Mathematik und Programmierung

2 Darstellung von Zahlen und Zeichen

Einführung in Matlab

Modellierung und Programmierung 1

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/

Lua Grundlagen Einführung in die Lua Programmiersprache

Dazu stellen Sie den Cursor in die Zeile, aus der eine Überschrift werden soll, und klicken auf die gewünschte Überschrift.

Wie halte ich Ordnung auf meiner Festplatte?

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

Inventur. Bemerkung. / Inventur

Anbindung des eibport an das Internet

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

1 Vom Problem zum Programm

Achtung! In Abhängigkeit Ihrer Lohnlizenz können einzelne Felder evtl. nicht angezeigt werden (z.b. Pfänd.summe, PV-frei, UV-frei).

Dokumentenverwaltung im Internet

10:Exkurs MATLAB / Octave

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Einführung in die C++ Programmierung für Ingenieure

V8i und PDS. Bentley Technical Support

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Im Jahr t = 0 hat eine Stadt Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Import und Export von Übergängern

Dokumentation. estat Version 2.0

Dr. Monika Meiler. Inhalt

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Einführung in die Programmierung

FERNHEIZWERKE Software zur Sammlung der Betriebsdaten

Dokumentation IBIS Monitor

Kurze Einführung in Octave

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

AcQuickPrint / AcSetPrinter Publizieren leicht gemacht / Drucker in Layouts tauschen

Konzepte der Informatik

SAP-KIS RemoteApp: Besonderheiten beim Dateiexport und Drucken

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

Erstellen von x-y-diagrammen in OpenOffice.calc

Tipps und Tricks zu den Updates

Einführung in. Logische Schaltungen

Das DAAD-PORTAL. Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD.

1 Mathematische Grundlagen

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Anzeige von eingescannten Rechnungen

R ist freie Software und kann von der Website.

2. Einführung in das Ingenieurtool MATLAB

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Lehrer: Einschreibemethoden

Transkript:

INTELLIGENTE DATENANALYSE IN MATLAB Einführung in MATLAB

Überblick 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. 2

Überblick Warum MATLAB? Einfache Syntax basierend auf dem Matrix-Datentyp. Breites Spektrum mathematischer Funktionen und Algorithmen aus verschiedenen Anwendungsbereichen. Plattformübergreifende Programmiersprache. Einfach zu bedienende Visualisierungsmöglichkeiten. Demos: http://www.mathworks.de/products/matlab/demos.html Alternativen? Octave, Scilab R 3

Arbeitsfenster 4

Hilfe und Plot-Fenster 5

Hilfe Eines der folgenden Kommandos: help help topic help command lists all the help topics provides help for the specified topic provides help for the specified command Helpwin opens a separate help window for navigation Lookfor keyword search all M-files for keyword Online resource 6

Befehle in MATLAB Skriptsprache: Eingabe erfolgt durch einen ASCII-Text (.m-file) oder über die Tastatur. Skripte mit Parameterübergabe heißen Funktionen. Befehl wird nach dem Enter-Zeichen sofort ausgeführt. Durch Befehl wird gleichnamiges.m-file gestartet, welches wiederum eine Folge von Befehlen enthält. Jedes selbstgeschriebene Programm erweitert MATLAB um einen neuen Befehl! Grundlegende Funktionen sind eingebaut. 7

Datenstruktur in MATLAB Alle Variablen sind mehrdimensionale Felder von Fließkommazahlen doppelter Präzision, 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, aber empfehlenswert! 8

Daten-/Befehlseingabe Eingabe von Skalaren: >> 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 9

Daten-/Befehlseingabe 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. 10

Daten-/Befehlseingabe 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 Vektor mit linear gestaffelten Elementen logspace Vektor mit logarithmisch gestaffelten El. Die Parameter sind Anfang, Ende und Anzahl: >> b2=linspace(1,3,5) b2 = 1.00 1.50 2.00 2.50 3.00 11

Daten-/Befehlseingabe 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 (3 x 3)-Matrix. Transposition erfolgt mit Apostroph: >> A2 =[1 2 3; 4 5 6; 7 8 0] A2= 1 4 7 2 5 8 3 6 0 12

Teilen von Matrizen; Indices Lineare Indizierung: >> A(6) liefert die 8 (spaltenweise Zählung) Indizierung über Zeile und Spalte: >> 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=1 2 3 4 5 6 7 8 0 13

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: Matrixgröße wird zur Laufzeit automatisch angepasst! Informationen über Matrizen (Variablen): who, whos size(a) length(v) Welche Variablen gibt es? Größe? Dimensionen einer Matrix Länge eines Vektors 14

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 Probieren Sie: >> x=rand(1,4) >> plot(x) 15

Besondere Variable Folgende 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: 21024-1) realmin kleinste Fließkommazahl (IEEE: 2-1022 ) computer Computertyp und Betriebssystem 16

Der Arbeitsbereich Alle unter dem Prompt >> oder in Skripten erzeugten Variablen liegen im sog. Arbeitsbereich. 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

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 Variable A unter A.xyz als ASCII-Tab. 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. 18

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 19

Beispiele Eingabe von Werten Matrixoperationen >> clear >> x=[-1 0 2] x= -1 02 >> A=[1 2 3;4 5 6;7 8 0] A= >> c=3; >> 1 2 3 4 5 6 7 8 0 >> 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= 20 14 32 23 32 77 68 23 68 113

Beispiele Vektoroperationen I Vektoroperationen II >> x x= -1 0 2 >> y=x-1 y= -2-1 1 >> x *y ans= 4 >> >> x*y ans= 2 1-1 0 0 0-4 -2 2 >> y*x ans= 2 0-4 1 0 2-1 0 2 >> pi * x ans= -3.1416 0 6.2832 21 >>

Matrix- Division Linksdivision in MATLAB: X = A \ B bedeutet X = inv(a) * B Hier ist X die Lösung von A * X = B. Linksdivision 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 überbzw. unterbestimmten Gleichungssystems A * X = B im Sinne kleinster Quadrate. Rechtsdivision in MATLAB: X = A / B ist definiert durch A/B = (B \A ) Hier ist X die Lösung von X * A = B. 22

Beispiel Matrix- Division >> b=a*x b= 5 8-7 >> z=a\b z= -1 0 2 >> any(z == x) ans= 1 >> Lösen des folgenden Gleichungssystems: 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 A=1 2 3 b= 5 x=-1 4 5 6 8 0 7 8 0-7 2 Es ist z gleich x! 23

Logische Ausdrücke Vergleichsoperatoren: == gleich ~= nicht gleich > größer >= größer-gleich usw. Logische Verknüpfungen: & logisches UND logisches ODER ~ logisches NICHT xor logisches EXKLUSIV-ODER 24

Beispiel Boolesche Variablen >> L=(A>=5) L = 0 0 0 0 1 1 1 1 0 >> B=A(L) B = 7 5 8 6 >> Ergebnisse von Logik- Operationen werden in 0/1-Matrizen gespeichert. Boole-Matrix kann zur Indizierung verwendet werden. 25

Graphische Darstellung MATLAB verfügt über umfangreiche Funktionen zum Erzeugen von graphischen Darstellung: Einfache Darstellung von Messreihen in kartesischen Koordinaten. Polarplots. 3-dimensionale, farbcodierte Pixelbilder. 3D-Flächen mit Höhenlinien. beleuchtete 3D-Flächen mit Schatten und Glanzlichtern. 26

Graphische Darstellung Funktion plot() stellt Wer te in der xy-ebene dar. Format: plot(x,y, symbols ) Funktion plot3() stellt Wer te im xyz-raum dar. Format: plot3(x,y,z, symbols ) Symbole repräsentieren Farbe, Punkt-/Linienform und -typ. Zahlreiche weitere Plot-Befehle: line, axis, view, mesh, surf 27

Programmieren in MATLAB If/else-Anweisung: if condition statements else statements end While-Schleife: while condition statements end condition ist ein Boolscher Ausdruck. For-Schleife for counter=first:last statements end break zum vorzeitigen verlassen einer For- bzw. While-Schleife. continue zum Sprung in die nächste Iteration. For-Schleifen sollten soweit möglich vermieden werden, da Ausführung relativ langsam! 28

Funktionen Dateiname testfunktion.m Dateikopf A =... B =... function [A, B] = testfunktion(c,d,e); Aufruf der Funktion im eigentlichen Programm durch [M, N] = testfunktion (A,B,C); Aufgaben können in Unterprogramme aufgeteilt werden. Jede globale Funktion in einer eigenen Datei. Definition von lokale Funktionen innerhalb einer globalen Funktion möglich. 29

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 30