Präsentation herunterladen
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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.