Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MATLAB André Bolles.

Ähnliche Präsentationen


Präsentation zum Thema: "MATLAB André Bolles."—  Präsentation transkript:

1 MATLAB André Bolles

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

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

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

5 Wozu brauche ich 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 Quelle:

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

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

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

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

10 Programmieren in MATLAB
Kontrollstrukturen if/else Schleifen 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 Programmieren in MATLAB
Kontrollstrukturen try/catch 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 Programmieren in MATLAB
MATLAB M-File Dateiendung .m Zwei Arten von Dateien Skripte Funktionen 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

13 Function in MATLAB M-File
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 Eingabeparameter Funktionsname (muss mit Dateiname übereinstimmen)

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

15 Ausführung von MATLAB-Code
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 Integration von MATLAB in Java
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

17 Integration von MATLAB in Java
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

18 Was bietet MATLAB-Builder for Java?
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

19 Demo

20 Fazit 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


Herunterladen ppt "MATLAB André Bolles."

Ähnliche Präsentationen


Google-Anzeigen