1 / 20

MATLAB

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

gunnar
Download Presentation

MATLAB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 = MATrixLABoratory? • 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 SequencingAlgorithm • Astrium EADS: Two-Way Laser Optical Link betweenAircraftandSatellite • Automotive Systems Laboratory: Test of Crash Sensors • Medical University of South Carolina: Gene/Protein Analysis • … Quelle: www.mathworks.com/products/matlab/userstories

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

  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; 4 -2 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'); elseifrem(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 end

  11. Programmieren in MATLAB • Kontrollstrukturen • try/catch try X = tan(x); catch ME1 disp(['Exceptionthrown:' ' ' 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 • 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

  13. Function in MATLAB M-File function [ out1, out2, out3 ] = tutorial( in1, in2, in3 ) % This function has 3 input arguments and 3 output arguments % Detailedexplanationgoeshere. % 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 MATLAB Compiler MATLAB Builderfor .NET MATLAB Builderfor Excel MATLAB Builderfor Java exe dll

  15. Ausführung von MATLAB-Code • Ausführung von MATLAB-Code in MATLAB ComponentRuntime (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 Builderfor Java • für die Ausführung: • MATLAB RuntimeComponent • 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 Builderfor 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-Builderfor 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

More Related