1. Grundlagen

1.1. Matlab starten und stoppen

Matlab lässt sich auf unterschiedliche Arten starten. Wie, hängt hauptsächlich davon ab, welches Betriebssystem verwendet wird.

Unter Linux lässt sich Matlab normalerweise mit dem Befehl matlab von der Kommandozeile aus starten.

prompt
sw@agony> matlab

Unter Umständen liegt Matlab jedoch nicht im Standard-Verzeichnis. Dann muss der absolute Pfad angegeben werden. Angenommen Matlab wurde nach /opt/matlab/ installiert:

prompt
sw@agony> /opt/matlab/bin/matlab

Unter Windows lässt sich Matlab entweder über das Startmenü, über das Desktop-Icon oder über die Schnellstart-Leiste starten:

1.2. Matlab beenden

Matlab lässt sich mit den Kommandozeilenbefehlen quit oder exit beenden. Alternativ dazu kann Matlab auch mit dem Tastaturkürzel Strg+Q oder über das Menü File → Exit Matlab beendet werden.

1.3. Matlab-Hilfe

Matlab hat eine sehr ausführliche Dokumentation. Die Hilfe zu bestimmten Befehlen kann mit dem Befehl

Matlab
help
befehl

angezeigt werden. help quit oder help exit geben somit Auskunft über die Befehle quit und exit. Zusätzlich besitzt Matlab eine grafische Oberfläche für die Dokumentation. Diese kann mit dem Befehl doc aufgerufen werden. Um direkt zu einem Thema zu springen dient der Befehl doc thema.

2. GUI

Zum einfachen Erstellen von grafischen Oberflächen bietet Matlab ein Werkzeug namens 'Graphical User Interface Development Environment', oder kurz GUIDE.

2.1. Erstellen einer neuen GUI

Vor dem Erstellen einer GUI, muss GUIDE gestartet werden. Dies kann man über die Kommandozeile mit diesem Befehl tun:

Matlab
guide

Alternativ kann er auch im Menü über File → New → GUI erreicht werden.

Es erscheint ein Dialogfenster. Mit Blank GUI kann dabei ein neues, komplett leeres Fenster erstellt werden. Wird diese Auswahl dann mit OK bestätigt, öffnet sich der Dialog-Editor.

Folgende Komponenten sind im Dialog-Editor zu erkennen. Die Toolbar am linken Fensterrand beinhaltet alle Steuerelemente, die für eine GUI verwendet werden können.

Die Toolbar am oberen Fensterrand beinhaltet Funktionen zum Layouten der GUI. Dazu gehört Speichern und Laden der GUI, Kopieren, Einfügen und Ausrichten von Steuerelementen und das Starten der GUI. Alle Aktionen der oberen Toolbar können auch über das Menü ausgeführt werden.

2.2. Layouten von Steuerelementen

Um Steuerelemente auf die GUI zu setzen, muss zuerst auf das gewünschte Element in der linken Toolbar geklickt werden. Danach kann dieses Element mit einem Klick auf die Fensterfläche in die GUI eingefügt werden. Beispielsweise muss zum Einfügen eines Textfelds zuerst auf den Button mit der Aufschrift TXT geklickt werden und danach auf die Position im Fenster, wo das Textfeld erscheinen soll. Ein neuer Button kann mit einem Klick auf den Button mit der Aufschrift OK hinzugefügt werden. Das Ergebnis könnte dann in etwa so aussehen.

Jedes Element hat individuelle Eigenschaften. Um diese zu verändern gibt es den Property Inspector. Der Property Inspector kann über einen Doppelklick auf das zu verändernde Element geöffnet werden.

Hier sieht man die Eigenschaften des Buttons. Die Eigenschaft String gibt dabei den Text an, den das Steuerelement anzeigen soll. Tag ist der Name des Steuerelements und Position ist die Position und die Größe des Elements auf der GUI.

Wird beispielsweise die Eigenschaft String des Buttons auf Start geändert, so ändert sich analog dazu auch der angezeigte Text in der GUI.

2.3. Hinzufügen von Funktionalität

Bis jetzt kann zwar das Aussehen der GUI angepasst werden. Aber beim Starten geschieht nichts. Keines der Steuerelemente reagiert auf Benutzereingaben. Matlab arbeitet dabei mit sogenannten Callback-Funktionen. Diese speziellen Funktionen werden immer bei bestimmten Benutzeraktionen aufgerufen und können vom Programmierer angepasst werden.

Um die Callback-Funktion anzupassen, die beim Druck auf den Button ausgelöst wird, genügt ein Rechtsklick auf den Button. Im daraufhin erscheinenden Menü wählt man den Eintrag View Callbacks und dort den Unterpunkt Callback. Es öffnet sich der M-File-Editor, der die Stelle im Code markiert, wo sich die Callback-Funktion befindet.

Der Code, an dem der Cursor sich befindet, sieht in etwa so aus.

Matlab
% --- Executes on button press in pushbutton1.
function
pushbutton1_Callback
(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

Beim Klick auf den Button wird somit die Funktion pushbutton1_Callback aufgerufen. Beim Aufruf werden folgende Daten an die Funktion übergeben: hObject repräsentiert ein Handle auf das Button-Objekt selbst. eventdata wird zur Zeit nicht von Matlab verwendet und ist somit leer. handles ist eine Struktur, in der sich die Handles auf jedes Steuerelement auf der GUI befinden. Auf das jeweilige Handle kann mit dem Objektnamen (also dem Wert im Feld Tag des Property Inspectors) zugegriffen werden. So liefert beispielsweise handles das Handle auf den Button.

Um die Eigenschaften eines GUI-Elements zu verändern, gibt es den Befehl set. set erwartet als Eingabeparameter das Handle des Objekts, das geändert werden soll, danach die Eigenschaft, die geändert werden soll und den Wert, den die Eigenschaft annehmen soll. Die verfügbaren Eigenschaften eines Elements können zum größten Teil im Property Inspector nachgesehen werden. Um etwa den Text des statischen Textes zu verändern, schreiben wir die Callback-Funktion folgendermaßen um:

Matlab
% --- Executes on button press in pushbutton1.
function
pushbutton1_Callback
(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set
(handles.text1,
'String'
,
'Hallo Welt'
);

2.4. Starten der GUI

Nach dem Abspeichern und Schließen der Datei kann die erstellte grafische Oberfläche gestartet werden. Entweder über den grünen Pfeil in der oberen Taskleiste, mit Strg+T oder über den Menüeintrag Tools → Run.

Und dann erscheint die GUI in ihrer vollen Pracht. Zugegeben, sie ist noch etwas spartanisch, aber es sollte jetzt möglich sein, weitere Steuerelemente darauf zu plazieren und auf Knopfdruck zu verändern.