37
1 Institut für Informatik Christian-Albrechts-Universität, Kiel www.mip.informatik.uni-kiel.de Matlab Einführung in Matlab Multimediale Informationsverarbeitung Sandro Esquivel

Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

1

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Matlab

Einführung in Matlab

Multimediale Informationsverarbeitung

Sandro Esquivel

Page 2: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

2

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Übersicht

● Allgemeines

● Variablen und Matrizen

● Darstellen von Funktionen

● Kontrollstrukturen für Programme

● Beispiele und Aufgaben

Page 3: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

3

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Was ist Matlab?

● Matlab bedeutet ''Matrix Laboratory''

● Plattformunabhängige Skriptsprache

● Numerisches Rechnen, bes. mit Matrizen

Nicht: Algebraisches/symbolisches Rechnen (z.B. Maple)!

● Proprietäre Software von MathWorks (Studentenlizenzen ab 80€)

● Alternativen: Scilab (INRIA), GNU Octave (freie Software)

● Funktionsumfang: Lineare Algebra, Trigonometrie, Statistik,Funktionen- und Datenvisualisierung, etc.

● Erweiterbar durch ''Toolboxen'' (z.B. Bildverarbeitung, Optimierung)

Page 4: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

4

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Verwenden von Matlab

● Starten mit /home/matlab/bin/matlab

● Grafische Benutzeroberfläche mit Dateibrowser, Skriptfenster, Workspace und Konsolenfenster

Konsolenfenster

Workspace

Skriptfenster

Dateibrowser

Page 5: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

5

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Verwenden von Matlab

● Interaktive Benutzung:

● Eingabe von Befehlen in Kommandozeile ( >> )

● Direkte Ausgabe von Ergebnissen in Konsole

● Variablen werden im Workspace gespeichert

Konsolenfenster

WorkspaceKommandozeile

Page 6: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

6

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Verwenden von Matlab

● Verwenden als Batchinterpreter:

● Programmieren von Skripten/Funktionen (.m-Dateien)

● Aufruf von Skripten/Funktionen über die Kommandozeile

Dateibrowser

Skriptfenster

Page 7: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

7

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Skripte und Funktionen

● .m-Dateien sind Skripte, d.h. Abfolgen von Matlab-Befehlen, z.B.:

● clear all

● phi = 0.25*pi;

● % Berechne die 2D­Rotationsmatrix zu phi

● A = [ cos(phi) sin(phi); ...

●      ­sin(phi) cos(phi)];

● Aufruf über den Skriptnamen (= Dateiname ohne .m), z.B.:

● >> meinskript

Datei “meinskript.m”

Page 8: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

8

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Funktionen

● In .m-Dateien können auch eigene Funktionen defininiert werden:

● % Berechnet die 2D­Rotationsmatrix zu phi

● function A = meinefunktion(phi)

● A = [ cos(phi) sin(phi); ...

●      ­sin(phi) cos(phi)];

● end

● Aufruf von eigenen Funktionen:

● >> meinA = meinefunktion(0.25*pi);

Datei “meinefunktion.m”

Page 9: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

9

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Allgemeine Hinweise zu Skripten

● Kommentarzeilen werden mit % eingeleitet.

● Befehle, die über mehrere Zeilen gehen, mit ... kennzeichnen.

● Semikolon am Zeilenende unterdrückt die Ausgabe.

● Mit help Befehl erhält man Hilfe zu einem Befehl.

Page 10: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

10

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Übersicht

● Allgemeines

● Variablen und Matrizen

● Darstellen von Funktionen

● Kontrollstrukturen und Programme

● Beispiele und Aufgaben

Page 11: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

11

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Workspace

● Workspace = Variablenumgebung zur Laufzeit

● Variablen werden im Workspace gehalten, auch bei mehrfachem

Ausführen von Skripten.

● whos gibt alle Variablen im Workspace aus.

● Löschen aus dem Workspace mit clear Name oder clear all

● Laden/Speichern des Workspace mit load und save (.mat-Datei)

Page 12: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

12

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Variablen und Matrizen

● Variablen speichern Skalare, Vektoren und Matrizen

● Keine explizite Deklaration nötig (“on-the-fly”)!

● Keine konkreten Datentypen (“alle Variablen sind double-Matrizen”)!

● >> x = tan(pi/8)

x =   0.4142

Kommandozeile

Konsolenausgabe

Page 13: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

13

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Beispiele zu Variablen und Matrizen

● >> x = 42     42

● >> y = [ x, x+1 ] ( 42 43 )

● >> y' ( 42 43 )T

● >> y(1) y1

● >> A = [ 1 2 3; 4 5 6 ]   1 2 3  4 5 6

● >> A(2,1) A2, 1

● >> size(A,1) Anzahl Zeilen von A

● >> size(A,2) Anzahl Spalten von A

● >> length(x) Länge des Vektors x

( )

Page 14: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

14

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Zugriff auf Vektor-/Matrixelemente

● Zugriff auf Vektorelemente mit x(Index)

● Zugriff auf Matrixelemente mit A(Zeile, Spalte)

Achtung: Indizes beginnen in Matlab bei 1!

Außerdem: Wird auf ein Element zugriffen, das nicht existiert, wird die Matrix oder der Vektor entsprechend vergrößert!

● Zugriff auf einzelne Zeilen/Spalten einer Matrix:

● >> A(:,j) j-te Spalte von A als Spaltenvektor

● >> A(i,:) i-te Zeile von A als ZeilenvektorA

a,i… A

a,j

● >> A(a:b,i:j) Untermatrix : :A

b,i… A

b,j

. .

Page 15: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

15

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Erzeugen von Vektoren und Matrizen

● Weitere Möglichkeiten zum Erzeugen von Vektoren/Matrizen:

● >> A = [1 2; 3 4] Zeilenweiser Aufbau

● >> A = zeros(n,m) n x m-Nullmatrix

● >> A = ones(n,m) n x m-Einsmatrix

● >> I = eye(n) n x n-Einheitsmatrix

● >> x = a : s : b Vektor (a, a+s, a+2s, ..., b)

● >> x = linspace(a,b,n) Vektor (a, ..., b) der Länge n

● >> x = [ x a ] Erweitert Vektor x um Element a.

Page 16: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

16

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Arithmetische Operationen

● Arithmetische Operatoren größtenteils wie in C/C++ oder Java:

Aber: * ist z.B. je nach Operand Skalar-, Vektor- oder Matrixprodukt!

+, ­, *, / Arithmetik

^ Exponentialrechnung

= Zuweisung

() Auswertungsreihenfolge

&&, ||, ~ Logische Operatoren

>, <, >=, <=, ==, ~= Vergleichsoperatoren

' Transponieren

Page 17: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

17

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Weitere arithmetische Operationen

● Weitere Operationen sind als Funktionen implementiert, z.B.:

● Absolutwert |x|: abs(x)

● Quadratwurzel √x: sqrt(x)

● Runden von x: round(x), floor(x), ceil(x)

● Trigonometrie: sin(x), cos(x), tan(x), etc.

● Statistik: min(v), max(v), mean(v), var(v), etc.

● Vektorprodukte: dot(u,v), cross(u,v)

● Inverse A-1: inv(A)

● ex, log(x): exp(x), log(x)

➔ Weitere Informationen mit help arithm und help ops

Page 18: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

18

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Elementweise Operationen

● Die meisten skalaren Funktionen liefern für Vektoren als Eingabe die elementweisen Funktionswerte, z.B.:

● >> abs([­2, ­1, 0, 1])

ans = 

    2 1 0 1

● Explizit elementweise Operatoren sind .+, ./, .^, etc.

Zum Beispiel:

● B = A^2  ist Matrixquadrat (d.h. B = A2 = A·A)

● B = A.^2 ist Matrix der Quadrate (d.h. Bi,j = A

i,j2)

Page 19: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

19

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Übersicht

● Allgemeines

● Variablen und Matrizen

● Darstellen von Funktionen

● Kontrollstrukturen für Programme

● Beispiele und Aufgaben

Page 20: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

20

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

2D-/3D-Plot

● plot(x,y) stellt Datenpunkte (x1,y

1) … (x

n,y

n) als 2D-Plot dar.

● plot3(x,y,z) stellt Datenpunkte (x1,y

1,y

1) … (x

n,y

n,z

n) als 3D-Plot dar.

● x, y und z müssen dabei Vektoren gleicher Länge sein!

Page 21: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

21

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

● Zum Plotten von Funktionen, z.B. y = sin(x), müssen erst Werte-/Ergebnisvektoren erstellt werden (Diskretisierung)!

● Diskretes Intervall für x-Werte erstellen:

● >> x = linspace(­1,1,100);

● Andere Möglichkeit mit Angabe der Schrittweite:

● >> x = ­1 : 0.01 : 1;

● sin(x) erzeugt Vektor der Funktionswerte (sin(x1), ..., sin(x

n))

● >> plot(x, sin(x))

Plotten von Funktionen

Schrittweite

Anzahl Samples

Page 22: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

22

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

● n x m Plotfenster erzeugen und das

k-te Fenster zum Zeichnen auswählen: subplot(n, m, k)

● Alle Plots in dasselbe Fenster zeichnen: hold on

● Fenster vor jedem neuen Plot löschen: hold off

● Titel zum Plot hinzufügen: title('Text')

● Achsenbeschriftungen hinzufügen: xlabel('Text')

(analog: ylabel, zlabel)

● x/y-Achsen im 2D-Plot skalieren: axis([xmin x

max y

min y

max])

Weitere Plotfunktionen

Page 23: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

23

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Speichern und Laden von Bildern

● Bilder werden als Matrizen gespeichert

● Matrixelemente sind Skalare (Grauwert) oder Tupel (z.B. RGB-Werte)

● Laden von Bildern mit I = imread('Dateiname');

● Speichern von Bildern mit imwrite(I, 'Dateiname')

● Konvertierung zwischen Datentypen und Farbräumen möglich

➔Siehe auch Matlab-Hilfe: help image

Page 24: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

24

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Anzeigen von Bildern

● Darstellung von Bildern mit imshow(I) oder imagesc(I)

● Wahl verschiedener Farbtabellen möglich (colormap)

● Zeichnen in Bilder z.B. mit

hold on und plot möglich

Page 25: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

25

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Übersicht

● Allgemeines

● Variablen und Matrizen

● Darstellen von Funktionen

● Kontrollstrukturen für Programme

● Beispiele und Aufgaben

Page 26: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

26

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Kontrollstrukturen in Programmen

● Kontrollstrukturen ähnlich C/C++, Java oder Pascal

● Ermöglichen Programmierung von komplexen Skripten/Funktionen

01 function ggt = ggtEuclidean(a, b)02 if (a == 0)03 ggt = b;04 else05 while (b ~= 0)06 if (a > b)07 a = a ­ b;08 else09 b = b ­ a;10 end11 end12 ggt = a;13 end14 end

Datei “evalpoly.m”

Page 27: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

27

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Alternative Anweisungen (if … else)

● if (a == b)

● b = 0;

● elseif (a > b)

● a = a ­ b;

● else

● b = b ­ a;

● end

Achtung: “a ungleich b” heißt in Matlab: a ~= b

➔Siehe auch help ops für Liste aller logischen Operatoren und Vergleichsoperatoren.

Page 28: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

28

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Wiederholte Anweisungen, Schleifen (while)

● while (b ~= 0)

● if (a > b)

●a = a ­ b;

● else

●b = b ­ a;

● end

● end

● Verlassen von Schleifen mit break

● Springen zur nächsten Iteration mit continue

Page 29: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

29

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Wiederholte Anweisungen, Zählschleifen (for)

● Zählschleifen werden in Matlab mit diskreten Intervallen angegeben:

● for t = 0 : 0.01 : 2*pi

● for k = 0 : N

●x(k+1) = sin(t)^k;

● end

● end

● for x = v wiederholt die Schleife für jedes Element des (Zeilen-) Vektors v, d.h. im i-ten Schleifendurchlauf ist x = v

i.

Schrittweite

Startwert

Zielwert

Zählvariable

Zählintervall

Page 30: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

30

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Ein-/Ausgabe

● Eingabe von Variablen mit input, z.B.:

● >> N = input('Bitte geben Sie eine Zahl ein: ')

Bitte geben Sie eine Zahl ein: 42

N =  42

● Kompaktere Ausgabe von Werten mit disp(Ausdruck)

● Formatierte Ausgabe wie in C++ mit der Funktionfprintf(Formatstring, Variablenliste), z.B.:

● >> fprintf('A ist eine %dx%d-Matrix.\n', ...           size(A,1),size(A,2))

A ist eine 3x4­Matrix.

Page 31: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

31

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Übersicht

● Allgemeines

● Variablen und Matrizen

● Darstellen von Funktionen

● Kontrollstrukturen für Programme

● Beispiele und Aufgaben

Page 32: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

32

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Beispiel 1 – Plotten der Sinusfunktion

● % Plottet sin(x) auf dem Intervall [0,2π]

● x = linspace(0,2*pi,1000);

● y = sin(x);

● plot(x, y)

● title('sin(x)')

Page 33: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

33

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Beispiel 1 – Plotten der Sinusfunktion

● % Plottet verschiedene Potenzen von sin(x)

● for k = 1 : 4

● subplot(2,2,k)

● x = linspace(0,2*pi,1000);

● y = sin(x).^k;

● plot(x, y)

● title(sprintf('sin(x)^%d',k))

● end

Page 34: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

34

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Beispiel 2 – Größter gemeinsamer Teiler

● ggT von a und b berechnen:

1 solange b ≠ 0

1.1 r ← a modulo b

1.2 a ← b

1.3 b ← r

2 a zurückgeben

● function res = ggt(a,b)

● res = 0;

● while (b ~= 0)

●r = mod(a,b);

●a = b;

●b = r;

● end

● res = a;

● end

Page 35: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

35

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Beispiel 2 – Größter gemeinsamer Teiler

● function res = ggt(a,b)

● res = zeros(size(a));

● for i = 1 : length(a)

●while (b(i) ~= 0)

● r = mod(a(i),b(i));

● a(i) = b(i);

● b(i) = r;

●end

●res(i) = a(i);

● end

● end

● ggT von a und b berechnen:

1 solange b ≠ 0

1.1 r ← a modulo b

1.2 a ← b

1.3 b ← r

2 a zurückgeben

● Bei Vektoren a, b als Eingabe: ggT elementweise berechnen

Page 36: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

36

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

Aufgaben zur Vertiefung

● Plotten Sie die Sinus-Funktion auf dem Intervall [0, 2π] mit verschie-denen Schrittweiten.

● Plotten Sie die Funktion 1/|x| auf dem Intervall [-10, 10] mit verschie-denen Schrittweiten. Was fällt Ihnen auf?

● Implementieren Sie die Matlab-Funktion faculty(x,k), welche diek-te Fakultat von x berechnet (zur Erinnerung: x! = 1 · 2 · ... · k).

● Passen Sie die Funktion faculty so an, dass auch Vektoren x als Eingabe verwendet werden konnen. Die Ausgabe sei dann (x

1!, ..., x

n!).

● Implementieren Sie die Matlab-Funktion evalpoly(a,x), welche das Polynom mit dem Koeffizientenvektor a an der Stelle x auswertet, also a

1 + a

2x + ... + a

nxn-1. Verwenden Sie dabei das Horner-Schema und

berücksichtigen Sie auch Vektoren als Eingabe.

Page 37: Einführung in Matlab - aib.lima-city.de Dateien/Multimedia Information/Praesentation-1... · 1 Institut für Informatik Christian-Albrechts-Universität, Kiel Matlab Einführung

37

Institut für InformatikChristian-Albrechts-Universität, Kiel

www.mip.informatik.uni-kiel.de

… und vieles mehr

● Funktionen zur Bild- und Signalverarbeitung vorhanden

● Symbolisches Rechnen mit Symbolic-Toolbox möglich (Maple-Kernel)

● Toolboxen erlauben anwendungsspezifische Erweiterung

● Interaktion und GUI-Design

● Objekt-orientierte Programmierung ...

➔Siehe insbesondere auch die Matlab-Hilfe und Dokumentation!