MATLAB André Bolles.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

ALP II: Objektorientierte Programmierung Sommersemester 2006
der Universität Oldenburg
der Universität Oldenburg
Imperative Programmierung
der Universität Oldenburg
Forschungszentrum caesar
Kapselung , toString , equals , Java API
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Matlab Einführung Tobias Wunner 16. Oktober 2006.
Einführung in MATLAB Grundlagen für die Übungen begleitend zur Vorlesung „Neuroinformatik I” Stefan Scherer David Bouchain.
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Imperative Programmierung -Entwicklungswerkzeuge
Werdegang, aktueller Stand,
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Gliederung des Inhalts
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
ATHOS Benutzertreffen 12.Oktober MATLAB-ATHOS Integration Glashütten, 12.Oktober 2006 HighQSoft GmbH, Hans-Joachim Bothe
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Dynamische Programmierung (2) Matrixkettenprodukt
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Dynamische Webseiten mit PHP
Imperative Programmierung Funktionen und Parameter
Introducing the .NET Framework
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Einführung in Java Alexander Dreßler modifiziert Peter Brichzin und Matthias Spohrer Literatur Installation der Programme.
Software Design Patterns Extreme Programming (XP).
Einführung in Visual C++
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmierung Datensammlung
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Simple Programmierung
Einführung in die Programmiersprache Java
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Dynamische Datentypen
2.4 Rekursion Klassifikation und Beispiele
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Purga - Scriptengine Ein Einblick.
Algorithmen und Datenstrukturen Übungsmodul 8
Einführung in PHP.
Einführung in PHP 5.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
BMEVIEEA100 Grundlagen der Programmierung
PHP: Operatoren und Kontrollstrukturen
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Übung 2 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 2 – Basics Vom ersten Befehl zum Plot.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Modellierung: MATLAB – Simulink - Stateflow
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

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

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: www.mathworks.com/products/matlab/userstories

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

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 = [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 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

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

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

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

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

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)

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

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

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

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

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

Demo

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