matlab in action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · universität...

29
Universität Bielefeld Angewandte Informatik M AT L AB in Action Marc Hanheide Angewandte Informatik Universität Bielefeld Februar 2003 M AT L AB starten Dokumentation & Hilfe The Art of Programming Effizienz O CTAVE Fazit

Upload: phungkhanh

Post on 06-Feb-2018

224 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik

MATLAB in Action

Marc HanheideAngewandte Informatik

Universität Bielefeld

Februar 2003

MATLAB starten

Dokumentation & Hilfe

The Art of Programming

Effizienz

OCTAVE

Fazit

Page 2: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Anwendungsbereiche

Auszug aus der Werbung• Technical Computing

• Data analysis and exploration

• Visualization and image processing

• Algorithm prototyping and development

• Modeling and simulation

• Programming and application development

"Für die Belange von Ingenieuren und Wissenschaftlern bietet MATLABden größten Funktionsumfang und ist das höchst entwickelte Programmseiner Klasse." IEEE Spectrum magazine

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 1

Page 3: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Was ist MATLAB?

• eigene Programmiersprache (Interpreter)

• Funktionsbibliothek (basierend auf LAPACK)

• Entwicklungsumgebung

• Compiler (MATLAB→ C/C++ )

• mächtiges Visualisierungstool (Plots & Bilder)

• GUI-Entwicklungsumgebung

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 2

Page 4: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik MATLAB in der TechFak

• Installiert unter /vol/matlab (Workstations: OSF, IRIX, Solaris)

• für Workstations: rcinfo matlab verfügbar

• in .rcrc oder andere Shell-Konfigurationsdatei bei RCINFO_ILIST denEintrag matlab hinzufügen

• Aufruf durch matlab [-nojvm]

• 35 Lizenzen verfügbar

• Toolboxes “image processing” & “statistics”

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 3

Page 5: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik MATLAB in der TechFak

• Installiert unter /vol/matlab (Workstations: OSF, IRIX, Solaris)

• für Workstations: rcinfo matlab verfügbar

• in .rcrc oder andere Shell-Konfigurationsdatei bei RCINFO_ILIST denEintrag matlab hinzufügen

• Aufruf durch matlab [-nojvm]

• 35 Lizenzen verfügbar

• Toolboxes “image processing” & “statistics”

• Toolbox “image processing” aber natürlich nicht verwenden. . .

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 3

Page 6: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik MATLAB starten

Usage: matlab [-h|-help] [...] [-nosplash] [-mwvisual visualid] [-debug][-nodesktop | -nojvm] [-runtime] [-check_malloc][-r MATLAB_command] [-logfile log][-Ddebugger [options]]

-nosplash - Do not display the splash screen during startup.-debug - Provide debugging information especially for X

based problems.-nodesktop - Do not start the MATLAB desktop. Use the current

terminal for commands. The Java virtual machinewill be started.

-nojvm - Shut off all Java support by not starting theJava virtual machine. In particular the MATLABdesktop will not be started.

-runtime - Start MATLAB in Runtime Server mode. Required onlyif MATLAB is run from the Runtime Development Kit.

-check_malloc - Turn on MATLAB memory integrity checking.-r MATLAB_command - Start MATLAB and execute the MATLAB_command.-logfile log - Make a copy of any output to the command window

in file log. This includes all crash reports.

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 4

Page 7: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik MATLAB-Major-Mode für emacs

MATLAB-IDE ist aus Performanzgründen oft ein schlechte Wahl, daher. . .• matlab-mode für emacs statt MATLAB-IDE• matlab-mode unterstützt nahezu alle Features der integrierten IDE• installiert unter /vol/matlab/share/lisp• Konfiguration in ~/.emacs

(siehe auch /vol/matlab/share/lisp/EMACS-MATLAB-HOWTO ):

(setq load-path (append (parse-colon-path "/vol/matlab/share/lisp") load-path))(autoload ’matlab-mode "matlab" "Enter Matlab mode." t)(setq auto-mode-alist (cons ’("\\.m\\’" . matlab-mode) auto-mode-alist))(autoload ’matlab-shell "matlab" "Interactive Matlab mode." t)(setq matlab-shell-command-switches "-nojvm -nosplash")(setq matlab-indent-function t) ; if you want function bodies indented(setq matlab-verify-on-save-flag nil) ; turn off auto-verify on save(defun my-matlab-mode-hook () (setq fill-column 76))(add-hook ’matlab-mode-hook ’my-matlab-mode-hook)(defun my-matlab-shell-mode-hook () ’())(add-hook ’matlab-shell-mode-hook ’my-matlab-shell-mode-hook)

• Bitte MATLAB nur durch matlab -nojvm oder durch den emacsstarten lassen

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 5

Page 8: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Hilfe & Unterstützung

• MATLAB-Dokumentation (Kommando helpdesk am MATLAB-Prompt)

• Handbücher

• lokale HOWTOs / FAQs (/vol/matlab/share/HOWTO )

• WWW: http://www.mathworks.com

• command help ... am MATLAB-Prompt

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 6

Page 9: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Hilfe & Unterstützung

• MATLAB-Dokumentation (Kommando helpdesk am MATLAB-Prompt)

• Handbücher

• lokale HOWTOs / FAQs (/vol/matlab/share/HOWTO )

• WWW: http://www.mathworks.com

• command help ... am MATLAB-Prompt

• Jemanden fragen, der sich mit sowas auskennt

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 6

Page 10: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB I

Mischung aus imperativ/funktional (und sogar objektorientiert)

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 7

Page 11: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB I

Mischung aus imperativ/funktional (und sogar objektorientiert)

In MatLab...

you have to know...

...what a MATRIX is

• Matrizen sind von herausragenderBedeutung (Alles ist eine Matrix)

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 7

Page 12: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB I

Mischung aus imperativ/funktional (und sogar objektorientiert)

In MatLab...

you have to know...

...what a MATRIX is

• Matrizen sind von herausragenderBedeutung (Alles ist eine Matrix)

• komfortable Zugriffsmöglichkeiten aufMatrixelemente mit (: ) und ([...] )-Operatoren

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 7

Page 13: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB I

Mischung aus imperativ/funktional (und sogar objektorientiert)

In MatLab...

you have to know...

...what a MATRIX is

• Matrizen sind von herausragenderBedeutung (Alles ist eine Matrix)

• komfortable Zugriffsmöglichkeiten aufMatrixelemente mit (: ) und ([...] )-Operatoren

• Das Semikolon (; ) ist kein Trennzeichenwie in C, sondern unterdrückt die Anzeigedes Operationsergebnisses

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 7

Page 14: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB II

Eigenschaften des Speichermanagements:• automatische Allokierung von Speicherbereichen• implizite Expandierung von Arrays• explizites Freigeben von Variablen mittels clear• implizites Typing• Variablen in Funktionen sind standardmäßig lokal→ persistent , global

• Speichern und Laden des Workspaces möglich

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 8

Page 15: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB II

Eigenschaften des Speichermanagements:• automatische Allokierung von Speicherbereichen• implizite Expandierung von Arrays• explizites Freigeben von Variablen mittels clear• implizites Typing• Variablen in Funktionen sind standardmäßig lokal→ persistent , global

• Speichern und Laden des Workspaces möglich

Einige wichtige Typen in MATLAB:• Arrays/Matrizen ([...] ): enthalten Variablen gleichen Typs• Sparse-Matrizen ([...] ): analog zur Mathematik, gespeichert werden

nur Elemente, die ungleich Null sind ⇒ speichereffizient• Struct (A.B ): analog zu C/C++• Cellarrays ({...} ): Mengen von Variablen verschiedenen Typs• Anzeigen des Workspaces mittels whos möglich

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 8

Page 16: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB III

%%%%%%%%%%% IF %%%%%%%%%%%if (strcmp(A,B));

fprintf(’sind gleich!’);else

fprintf(’sind NICHT gleich!’);end;

%%%%%%%%%%% FOR %%%%%%%%%%%j=1;for i=0:0.05:2*pi;

val(j)=sin(i);j=j+1;

end;

%%%%%%%%%%% WHILE %%%%%%%%%%%while (j>0);

fprintf(’Dies ist j: %3d’,j);j=j-1;

end;

Imperative Kontrollstrukturen

• angelehnt an bekannte imperativeProgrammiersprachen (C/C++ ,Java )

• for -Loop mit Bereichsangabe

• Boole’sche Konditionen ww = 0→falsew 6= 0→true

• Kommentare mit %

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 9

Page 17: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB IV

% Funktion mit 2 Eingabe-% und keinem Ausgabeargument

function F1(arg1, arg2);

% Funktion mit 1 Eingabe-% und 1 Ausgabeargument

function res=F2(arg1);res=2*arg1

Funktionsdefintion

• pro Datei (üblicherweise) nur eineFunktion

• Eine Funktion beginnt immer mitdem Schlüsselwort function

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 10

Page 18: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik The Art of programming MATLAB IV

% Funktion mit 2 Eingabe-% und keinem Ausgabeargument

function F1(arg1, arg2);

% Funktion mit 1 Eingabe-% und 1 Ausgabeargument

function res=F2(arg1);res=2*arg1

% Funktion mit 2 Eingabe-% und 2 Ausgabeargumenten% Das 2. Eingabeargument ist opt.

function [res1,res2]=F3(a1, a2);% Hier steht die Doku% der Funktionif (nargin>2);

res1=a2;else

res1=0;res2=a1;

Funktionsdefintion

• pro Datei (üblicherweise) nur eineFunktion

• Eine Funktion beginnt immer mitdem Schlüsselwort function

• Die Anzahl der übergebenen bzw.erwarteten Argumente steht innargin bzw. nargout

• Der erste Kommentarblock einerDatei wird als Dokumentationverwendet (help ... )

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 10

Page 19: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Effizienz

% Eine (naive) Funktion zum Skalieren% eines Bildesfunction res = scale_naive(img, factor)

w = factor*size(img, 1);h = factor*size(img, 2);for row = 1:w

for col = 1:hr = ceil(row / factor);c = ceil(col / factor);res(row,col) = img(r,c);

endend

• Schleifen sind Gift fürdie Geschwindigkeit vonMATLAB

⇒ Schleifen vermeiden!

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 11

Page 20: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Effizienz

% Eine (naive) Funktion zum Skalieren% eines Bildesfunction res = scale_naive(img, factor)

w = factor*size(img, 1);h = factor*size(img, 2);for row = 1:w

for col = 1:hr = ceil(row / factor);c = ceil(col / factor);res(row,col) = img(r,c);

endend

% Eine (coole) Funktion zum Skalieren% eines Bildesfunction res = scale_cool(img, factor)

w = size(img, 1);h = size(img, 2);step = 1/double(factor);res = img(round(1:step:w),...

round(1:step:h));

• Schleifen sind Gift fürdie Geschwindigkeit vonMATLAB

⇒ Schleifen vermeiden!

• Schleifen sind sehr oft durchelegante Matrixoperationenzu umgehen

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 11

Page 21: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Effizienz

% Eine (naive) Funktion zum Skalieren% eines Bildesfunction res = scale_naive(img, factor)

w = factor*size(img, 1);h = factor*size(img, 2);for row = 1:w

for col = 1:hr = ceil(row / factor);c = ceil(col / factor);res(row,col) = img(r,c);

endend

% Eine (coole) Funktion zum Skalieren% eines Bildesfunction res = scale_cool(img, factor)

w = size(img, 1);h = size(img, 2);step = 1/double(factor);res = img(round(1:step:w),...

round(1:step:h));

• Schleifen sind Gift fürdie Geschwindigkeit vonMATLAB

⇒ Schleifen vermeiden!

• Schleifen sind sehr oft durchelegante Matrixoperationenzu umgehen

• Eine sehr mächtige Funktionist find : Ermittelt alleElemente, die bestimmterBedingung genügen

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 11

Page 22: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Matrix-Operationen

% eine 6x4-NullmatrixA=zeros(6,4);

% eine 4x4-Zufallsmatrix (Werte von 0-1)B=rand(4,4);

% Größe einer Matrix ermitteln[sz_r,sz_c]=size(C);

% (elementweise) Matrix-AdditionR=A(1:4,:)+B;

% mathematische Matrix-MultiplikationR=A*B;

% elementweise Matrix-MultiplikationR=A(1:4,:).*B;

% elementweises PotenzierenR=A.^2;

% elementweises RadizierenR=sqrt(A);

• Die Größe einer Matrix lässtsich mittel size ermitteln.

• Fast alle mathematischenFunktionen sind fürMatrizen definiert undwerden elementweiseangewendet.

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 12

Page 23: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Matrix-Operationen

% eine 6x4-NullmatrixA=zeros(6,4);

% eine 4x4-Zufallsmatrix (Werte von 0-1)B=rand(4,4);

% Größe einer Matrix ermitteln[sz_r,sz_c]=size(C);

% (elementweise) Matrix-AdditionR=A(1:4,:)+B;

% mathematische Matrix-MultiplikationR=A*B;

% elementweise Matrix-MultiplikationR=A(1:4,:).*B;

% elementweises PotenzierenR=A.^2;

% elementweises RadizierenR=sqrt(A);

% Ein JPG-Bild als 3-dim. Array einlesen:im_rgb=imread(’Aragorn.jpg’);

% 3-dim. RGB-Bild in 2-dim Matrix% (Grauwerte) wandeln und als double casten:

im_grey=double(rgb2gray(im_rgb));

• Die Größe einer Matrix lässtsich mittel size ermitteln.

• Fast alle mathematischenFunktionen sind fürMatrizen definiert undwerden elementweiseangewendet.

• Bilder sind auch Matrizen(bzw. Arrays)

• Bilder kann man sich mitimshow anschauen

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 12

Page 24: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Der MATLAB-Profiler

• Analyse der Laufzeiten von MATLAB-Funktionen

• Starten des profilings mit profile on

• Stoppen mit profile off

• profile report : HTML-Statusbericht mit Laufzeiten aller aufgerufenenFunktionen

• profile plot : grafische Übersicht der Laufzeiten

• für weitere Funktionen des Profilers siehe help profile

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 13

Page 25: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik OCTAVE

OCTAVE ist eine Implementierung der MATLAB-Programmiersprache unter GPL(für “zu Hause”)

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 14

Page 26: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik OCTAVE

OCTAVE ist eine Implementierung der MATLAB-Programmiersprache unter GPL(für “zu Hause”)

Merkmale von OCTAVE:• etwa 50% der Funktionen von MATLAB fehlen• keine Entwicklungsoberfläche / keine GUI-Entwicklung• Visualisierung durch GNUPLOT und XV (dadurch eingeschränkt)• bei vielen Distributionen mitgeliefert

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 14

Page 27: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Fazit

Wann will ich MATLAB benutzen?• Visualisierung/Präsentation komplexer Daten• Rapid-Prototyping• Lösung mathematischer Probleme• Bildverarbeitung

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 15

Page 28: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Fazit

Wann will ich MATLAB benutzen?• Visualisierung/Präsentation komplexer Daten• Rapid-Prototyping• Lösung mathematischer Probleme• Bildverarbeitung

Wann lasse ich es lieber sein?• Ich brauche höchste Geschwindigkeit• Ich bin auf tief verschachtelte Rekursionen angewiesen• Ich mag keine neue Programmiersprache lernen• Das zu lösende Problem lässt sich nicht gut auf MATLAB-Strukturen

abbilden

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 15

Page 29: MatLab in Action - techfak.uni-bielefeld.demhanheid/lehre/matlab/matlab... · Universität Bielefeld Angewandte Informatik MATLAB in Action Marc Hanheide Angewandte Informatik Universität

Universität Bielefeld

AngewandteInformatik Fazit

Wann will ich MATLAB benutzen?• Visualisierung/Präsentation komplexer Daten• Rapid-Prototyping• Lösung mathematischer Probleme• Bildverarbeitung

Wann lasse ich es lieber sein?• Ich brauche höchste Geschwindigkeit• Ich bin auf tief verschachtelte Rekursionen angewiesen• Ich mag keine neue Programmiersprache lernen• Das zu lösende Problem lässt sich nicht gut auf MATLAB-Strukturen

abbilden

• Ich habe keine Ahnung, was eine Matrix ist!

Marc Hanheide ↖ ⇐ ▲ ▼ ⇒ ↗ 15