Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorial:matlab

Dieser Artikel befindet sich noch im Aufbau.

MATLAB

MATLAB bezeichnet ein kommerzielles Tool und deren Programmiersprache zur Lösung mathematischer Probleme.

Dieses Tutorial soll einen Einblick in die wesentlichen Elemente von MATLAB bieten.

FreeSoftware-Alternative

Eine bekannte FreeSoftware Alternative zu MATLAB bietet GNU Octave. GNU Octave stellt einen Klon von MATLAB dar, wobei GNU Octave einige Sprachfeatures hat, welche MATLAB nicht unterstützt. Hierzu gehören viele C-Style Features wie etwas die pre- und postfix Inkrementierung und Dekrementierung

a++;
++b;
c--;
--d; 

Viele Programme welche für MATLAB geschrienben sind, lassen sich auch mit GNU Octave ausführen und umgekehrt. Es gibt wie bereits erwähnt einige kleine Unterschiede. Der grosse Unterschied zwischen MATLAB und GNU Octave liegt im Angebot der sogenannten Toolboxen und Simulink.

Grundlagen

Skript

Im MATLAB kann ein Skript erstellt werden welches abgearbeitet werden kann. Dieses Skript wird zeilenweise abgearbeitet und nimmt keine Argumente auf noch gibt es etwas zurück (Konsolenausgaben ausgeschlossen).

Ein minimales Beispiel für ein solches Skript wäre

|main.m
a = 2;
b = 5;
a + b

Dieses Skript kann mit dem Befehl run('main.m') ausgeführt werden.

Funktion

Funktionen können im Gegensatz zu einem Skript Argumenten aufnehmen und Rückgaben geben. Das folgende Beispiel soll das, was im Beispiel für das Skript gezeigt wurde, als Funktion implementieren.

|foo.m
function result = foo(a, b)
    result = a + b;
end

Die Syntax einer Funktion im MATLAB ist relativ einfach. Die Funktion ist zunächst mal platziert zwischen den Schlüsselwörtern function und end. Im gemachten Beispiel ist deutlich zu erkennen, dass MATLAB keine Curly-Braces-Sprache ist. Nach dem Schlüsselwort function kommt die Angabe des Rückgabewertes (im Gegensatz zu Sprachen wie C oder Java muss in MATLAB keine explizite Typenangabe gemacht werden). Nach dem Rückgabewert kommt ein Gleichheitszeichen, nach welchem der Funktionsname deklariert wird (foo) und die Liste der Argumente im runden Klammern.

Die Funktion kann dann im einem Skript oder auf der Kommandozeile von MATLAB aufgerufen werden.

|main.m
foo(2, 5)

Typisch werden Funktionen mit einem Kommentar versehen, damit der Benutzer interaktiv die Funktionsbeschreibung abrufen kann. Diese Kommentare folgen einer bestimmten Syntax. Im folgenden soll das Beispiel für die obige Funktion dargestellt werden.

|foo
function result = foo(a, b)
    % FOO
    %    Calculates the sum of two numbers.
    %
    %    FOO(a, b)
    %        Returns the sum of a and b.
    result = a + b;
end

Diese Dokumentation die als Kommentar in der Funktion hinterlegt ist, kann mit dem Befehl help aufgerufen werden.

help('foo')

Klassen

Im Gegensatz zu Java gibt es im MATLAB ähnlich wie in C++ verschiedene Klassentypen. Zum einen die handle Klassen und zum andere die value Klassen. Handle Kalssen sind das was man aus Java kennt. Diese Klassen beinhalten Daten welche manipuliert werden können. Value Klassen dagegen machen für die Manipulation eine Kopie der Daten und bearbeiten diese Kopien. Somit gibt es bei value Klassen keine persistente Änderung der Daten ausser man vollzieht ein explizites Kopieren.

Handle

|person.m
classdef Person
% PERSON
%    Class for representing a person.
 
    properties (GetAccess = 'private', SetAccess = 'private')
        age;
    end
 
    % constructors
    methods
        function obj = Person(name; age; gender;)
            % PERSON
            %    Constructor for a Person.
            %
            %    Person(n, a, g)
            %        Creates a Person object with the name n,
            %        the age a and the gender g.
            obj.name = name;
            obj.age = age;
            obj.gender = gender;
        end   
    end
 
    % getter
    methods
        function value = getAge(obj)
            value = obj.age;
        end
    end
 
    % setter
    methods
        function obj = setAge(obj, age)
            obj.age = age;
        end
    end
 
end

Value

get & set

tutorial/matlab.txt · Zuletzt geändert: 2015/02/09 21:35 von ninux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki