Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MATLAB André Bolles. Was ist MATLAB? Wozu brauche ich MATLAB? Programmierung in MATLAB Integration von MATLAB in Java Demo Gliederung 2 2.

Ähnliche Präsentationen


Präsentation zum Thema: "MATLAB André Bolles. Was ist MATLAB? Wozu brauche ich MATLAB? Programmierung in MATLAB Integration von MATLAB in Java Demo Gliederung 2 2."—  Präsentation transkript:

1 MATLAB André Bolles

2 Was ist MATLAB? Wozu brauche ich MATLAB? Programmierung in MATLAB Integration von MATLAB in Java Demo Gliederung 2 2

3 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 3

4 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 4

5 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 5 Quelle:

6 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 6

7 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 = [ ; ] (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 7

8 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; ; 1 2 3] B = [7; 8; 9] X = A\B ist Lösung des Gleichungssystems AX = B Programmierung in MATLAB 8 8

9 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 9

10 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); end

11 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

12 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

13 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

14 Compilierung von MATLAB-Code 14 MATLAB MATLAB Compiler MATLAB Builder for.NET MATLAB Builder for Excel MATLAB Builder for Java dll exe

15 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

16 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

17 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

18 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

19 Demo 19

20 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


Herunterladen ppt "MATLAB André Bolles. Was ist MATLAB? Wozu brauche ich MATLAB? Programmierung in MATLAB Integration von MATLAB in Java Demo Gliederung 2 2."

Ähnliche Präsentationen


Google-Anzeigen