20
MATLAB André Bolles

MATLAB

  • Upload
    gunnar

  • View
    59

  • Download
    0

Embed Size (px)

DESCRIPTION

MATLAB. André Bolles. Gliederung. Was ist MATLAB? Wozu brauche ich MATLAB? Programmierung in MATLAB Integration von MATLAB in Java Demo. Was ist MATLAB. MATLAB = MATrix LABoratory ? Software zur numerischen Berechnung mathematischer Probleme - PowerPoint PPT Presentation

Citation preview

Page 1: MATLAB

MATLAB

André Bolles

Page 2: MATLAB

Was ist MATLAB?

Wozu brauche ich MATLAB?

Programmierung in MATLAB

Integration von MATLAB in Java

Demo

Gliederung

2

Page 3: MATLAB

MATLAB = MATrix LABoratory? Software zur numerischen Berechnung mathematischer

Probleme- Gegenstück: Mathematica, Maple für symbolische Algebra- Alternativen: eigentlich keine wg. des Umfangs

• RLab, GNU Octave, R-Project

Hersteller: The MathWorks Inc.- aktuelle Version 2009a

Sehr umfangreich- Viele Toolboxen für verschiedenste Anwendungsbereiche

• Signalverarbeitung, Bildverarbeitung, Aeronautics, Financial, …

Proprietäre Programmiersprache Sehr, sehr gute Dokumentation in der MATLAB-Hilfe

Was ist MATLAB

3

Page 4: MATLAB

Lizenzen an der Uni-Oldenburg- Entwicklerlizenz

• MATLAB• Simulink• Stateflow• Data Acquisition Toolbox• Statistics Toolbox• ….

- Schulungslizenz• Nicht ganz so umfangreich

Zugriff auf Lizenzen über Lizenzserver- flexlm.uni-oldenburg.de

Was ist MATLAB?

4

Page 5: MATLAB

Berechnung und Simulation komplexer mathematischer Sachverhalte- „Was MATLAB nicht kann, das geht auch nicht.“

Beispielanwendungen:- Albatroz Engineering: Automasiertes Echtzeit-System zur

Inspektion von Überlandleitungen- Applied Biosystems: DNA Sequencing Algorithm- Astrium EADS: Two-Way Laser Optical Link between Aircraft

and Satellite- Automotive Systems Laboratory: Test of Crash Sensors- Medical University of South Carolina: Gene/Protein Analysis - …

Wozu brauche ich MATLAB?

5

Quelle: www.mathworks.com/products/matlab/userstories

Page 6: MATLAB

MATLAB ist mehr als ein (sehr guter) Taschenrechner Vollständige Programme lassen sich in MATLAB erstellen

- Eigenständige Applikationen- Integration in Webanwendungen- Integration in eigene Applikationen

Programmierung in MATLAB

6

Page 7: MATLAB

MATLAB ist eine Sprache Alles in MATLAB ist eine Matrix (oder ein multidim. Array)

- u = 0.5 (1x1 Matrix)- v = [true false false] (1x3 Matrix)- w = ['Hallo' 'Welt' '!'] (1x10 Matrix)- x = [3; -2; 1] (3x1 Matrix)- y = [0.1 0.05; 0.05 0.1] (2x2 Matrix)

Matrix-Operationen- +;-;*;/;\ (Division hat spezielle Bedeutung)- y * 20 (jedes Element mit 20 multiplizieren)- y * y (Matrix-Multiplikation)- y * x (nicht möglich wg. falscher Dimension)

Programmierung in MATLAB

7

Page 8: MATLAB

Elegantes Lösen von linearen Gleichungssystemen- Beispiel:

• 3x + 4y – 2z = 7• 4x – 2y + 2z = 8• 1x + 2y + 3z = 9

- Eingabe in MATLAB• A = [3 4 -2; 4 -2 2; 1 2 3]• B = [7; 8; 9]• X = A\B ist Lösung des Gleichungssystems AX = B

Programmierung in MATLAB

8

Page 9: MATLAB

Datentypen:- numerisch: int, double- character: String, Character- logisch: false, true (abgebildet als 0 und 1)- cell: Struktur, welche verschiedene Arrays aufnimmt

• können untersch. Dimension haben und versch. Datentypen enthalten

- structure: ähnlich zu structures in C- classes: Java-Klassen oder eigene Klassen

Programmieren in MATLAB

9

Page 10: MATLAB

Kontrollstrukturen- if/else

- Schleifen

Programmieren in MATLAB

10

if n < 0 disp('Input must be positive'); elseif rem(n,2) == 0 A = n/2; else A =(n+1)/2; end

for m = 1:0.5:5 for n = 1:100 A(m, n) = 1/(m + n - 1); endend

Page 11: MATLAB

Kontrollstrukturen- try/catch

Programmieren in MATLAB

11

try X = tan(x);catch ME1 disp(['Exception thrown:' ' ' ME1.identifier]);end

kein spezieller ExceptionTyp (nur MException)ME1 gibt Variable an, in der die Exception gespeichert wird

Page 12: MATLAB

MATLAB M-File- Dateiendung .m- Zwei Arten von Dateien

• Skripte• Funktionen

Skripte- Folge von Anweisungen, die ausgeführt werden müssen- keine Ein- und Ausgabeparameter

Funktionen (im Folgenden näher vorgestellt)- Definition eigener Funktionen- Ein- und Ausgabeparameter möglich

Programmieren in MATLAB

12

Page 13: MATLAB

Function in MATLAB M-File

13

function [ out1, out2, out3 ] = tutorial( in1, in2, in3 )% This function has 3 input arguments and 3 output arguments% Detailed explanation goes here.% We don't need to specify something else here.x = 1;y = 2;z = 3; out1 = x * in1;out2 = y * in2;out3 = z * in3; end

Aufruf:

[x1 x2 x3] = tutorial(1, 2, 3);

Ausgabeparameter

Funktionsname (muss mit Dateiname übereinstimmen)

Eingabeparameter

Page 14: MATLAB

Compilierung von MATLAB-Code

14

MATLAB

MATLAB Compiler

MATLAB Builder for .NET

MATLAB Builder for Excel

MATLAB Builder for Java

dll exe

Page 15: MATLAB

Ausführung von MATLAB-Code

15

Ausführung von MATLAB-Code in MATLAB Component Runtime (MCR)- ähnlich zur Java Runtime Environment- separat zur eigentlichen MATLAB-Umgebung

Ausführung anwendungsspezifischen Codes außerhalb der MCR- JRE- .NET-Runtime- Nativ

Folglich:- keine MATLAB-Installation zur Ausführung von MATLAB-Code

notwendig- keine zusätzlichen Lizenzkosten bei Nutzung entwickelten

MATLAB-Codes

Page 16: MATLAB

Benötigte Produkte- für die Entwicklung:

• MATLAB• MATLAB Compiler• MATLAB Builder for Java

- für die Ausführung:• MATLAB Runtime Component• Die erstellte Java-Bibliothek• Java Runtime Environment

Integration von MATLAB in Java

16

Page 17: MATLAB

Entwicklung von M-Files mit benötigten Funktionen Erstellung eines neuen MATLAB Builder for Java Projektes

- Deployment der M-Files- inklusive der MCR falls auf Zielrechner keine MATLAB-

Installation vorhanden Import der erzeugten Java-Bibliothek

- Aufruf der Funktionalität aus Java-Awendungen heraus

Integration von MATLAB in Java

17

Page 18: MATLAB

Erzeugung von Java-Wrapper-Klassen, die die MATLAB-Funktionalität kapseln

Automatisches Mapping von Java-Datentypen in MATLAB-Datentypen und umgekehrt

Exception-Handling- MATLAB-Exception werden in Java gekapselt- Fehlermeldungen können in Java ausgegeben werden

Was geht nicht?- MATLAB-Klassen werden nicht direkt in Java-Klassen

umgewandelt und sind somit nur aus MATLAB-Code heraus aufrufbar

- Bestimmte Toolbox-Funktionen können nicht genutzt werden

Was bietet MATLAB-Builder for Java?

18

Page 19: MATLAB

Demo

19

Page 20: MATLAB

Zugriff auf (fast) vollständige MATLAB-Funktionalität aus externen Anwendungen heraus

Bei Aufteilung des Entwicklerteams keine übergreifenden Kenntnisse von MATLAB und Java notwendig

Zeitersparnis bei der Entwicklung mathematischer Anwendungen

Fazit

20