Der Einstieg in MATLAB Live Scripts

Die MATLAB Software des Unternehmens Mathworks wird in Industrie und Forschung viel für numerische Simulation sowie Datenanalyse ingesetzt. Mathworks stellt weiterhin für verschiedene Anwendungsgebiete Erweiterungspakete bereit, die sogenannten Toolboxen, sowie Apps und spezialisierte Editoren. Für eine einfache Datenanalyse zu Lehrzwecken kann die Statistics and Machine Learning Toolbox eingesetzt werden, für die Lösung partielle Differentialgleichungen die PDE Toolbox etc. Das vorliegende Tutorial erläutert die Verwendung des MATLAB Live Script Editor, mit dessen Hilfe man interaktive benutzerfreundliche Skripte ("Live Scripts") erstellen kann, die insbesondere bei der Erstellung didaktisch aufbereiteter Inhalte nützlich sind.

  Motivation

MATLAB kann auf verschiedene Arten verwendet werden, zum einen interaktiv mit der Konsole,zum zweiten in Form von MATLAB-Skripten, *.m-Dateien, die größere Programme mit Funktionen gliedern, und zum dritten mittels MATLAB Live Scripts, dies sind interaktive Skripte mit erweiterte Funktionalität für Inline-Dokumentation.

Warum Live Scripts?

MATLAB Live Scripts sind interaktive Dokumente, die das Erstellen, Dokumentieren und Teilen von Demonstratoren unterstützen. Die Interaktion wird insbesondere durch das Einfügen von einfachen Elemente der Benutzersteuerung erreicht, z.B. Schieberegler oder Eingabefelder, mit deren Hilfe der Anwender die Parameter eines Modells einstellen kann. Live Scripts können entweder mit Hilfe des Live Editors oder mit Hilfe eines speziellen Kommentar-Syntax erstellt und komplett oder abschnittsweise ausgeführt werden.

  Übersicht

Das Tutorial ist in vier Abschnitte gegliedert, die die grundlegende Idee und Verwendung sowie das Erstellen eines Live Scripts mit und ohne Live Editor erläutern, inklusive einer Mini-Demo, die die wichtigste Funktionalität zeigt:

Live Editor: Erstellen eines interaktiven Skripts

1 Was ist ein MATLAB Live Script?

Ein MATLAB Live Script ist ein interaktives Skript mit erweiterte Funktionalität für Inline-Dokumentation. Live Scripts haben die Dateiendung *.mlx und bestehen aus Codezellen, die den ausführbaren Code enthalten, und Markdownzellen, die formatierte Erläuterungen des Codes speichern.

Während ein .m-file den reinen Quellcode und Kommentare enthält, bietet das Live Script (.mlx-Datei) mehr Funktionalität. Im Live Script werden die Benutzer-Eingaben, der Quellcode selbst, die Ausführung des Quellcodes und die Ausgabe der Ergebnisse (Grafiken, Werte der Berechnungen) in einem einzigen interaktiven Fenster angezeigt. Dies dient der Übersichtlichkeit und dem Nachvollziehen der Befehle und Funktionen. Welche Auswirkung eine Änderung im Quellcode hat, ist durch die Änderung der ausgegebenen Ergebnisse (Grafiken, Textausgaben, usw.) direkt und unmittelbar zu erkennen.

2 Wie wird ein Live Script erstellt?

Ein Live Script kann auf zwei Arten erstellt werden: entweder wird direkt eine *.mlx-Datei erstellt, dadurch wird der Live Editor öffnet und die weitere Bearbeitung per graphischer Benutzeroberfläche ermöglicht, oder es wird ein normales MATLAB-Skript (*.m-Datei) mit spezieller Kommentar-Syntax in ein Live Skript umgewandelt und kann anschließend mit dem Live Editor weiter bearbeitet und ausgeführt werden.

2-1 Live Editor verwenden

Ein neues Live Script wird mittels Home > New Live Script erstellt. Das neu erstellte Skript hat zunächst den Namen untitled.mlx, enthält lediglich eine leere Codezelle und wird im Live Editor geöffnet. Der Live Editor besteht aus einer Menüleiste mit den Funktionen zum Erstellen formatierter Textzellen, Einfügen von Codezellen, und Ausführen des Codes, sowie den üblichen Fenstern Datei-Browser, Workspace, Editor- und Ausgabefenster.

Erstellung von Live Scripts

Das weitere Erstellen des Live Scripts mit dem Live Editor erfolgt durch Einfügen von Text-Zellen, Code-Zellen und ggf. Steuerelementen.

Text-Zellen einfügen
Durch Anklicken des Menüpunktes Text wird an der Stelle, wo sich der Cursor befindet, eine Textzelle in das Live Skript eingefügt. Textzellen können ähnlich wie in einem Word-Dokument formatiert werden, als Titel, Überschrift oder Normaltext.

Code-Zellen einfügen
Durch Anklicken des Menüpunktes Code wird an der Stelle, wo sich der Cursor befindet, eine Codezelle in das Live Skript eingefügt. Dies kann auch mit Hilfe des Tastenkürzels ALT+Eingabe geschehen.

Steuerelementes einfügen
Durch Anklicken des Menüpunktes Control öffnet sich eine Auswahlliste mit den verfügbaren Steuerelementen: Numeric Slider, Drop Down, Check Box, Edit Field, Button und das gewünschte Element kann in das Live Script eingefügt werden.

Strukturierung von Live Scripts

Größere Live Scripts werden wie ein Dokument in separat ausführbare Abschnitte (Sections) gegliedert, wobei jeder Abschnitt eine eigene Überschrift erhalten sollte. Der Code selber kann mit Hilfe wiederverwendbarer Funktionen strukturiert werden.

Das Verwenden von Überschriften hat den Vorteil, dass aus diesen anschließend ein Inhaltsverzeichnis für das Live Skript erstellt werden kann.
Bei größeren Skripten sollten die verwendeten Hilfsfunktionen am Ende des Skripts eingefügt werden. Weiterhin können auch externe selbstdefinierte Funktionen verwendet werden, wie bei normalen MATLAB Skripten.

2-2 Live Script Syntax

Die folgende Auflistung enthält die Syntax, die berücksichtigt werden muss, damit ein .m-Datei als Live Script geöffnet werden kann.

Für die Formatierung und Struktur von Texten gilt:

Sektionen: %% TitelderSection

Durch Sektionen wird der Text strukturiert. Die einzelnen Sektionen können einzeln ausgeführt werden und enthalten Texte und Quellcode.

Texte: % Hier steht ein Text.

Texte zur Beschreibung des Sachverhaltes/Kommentare werden nach einem Zeilen-beginnenden %-Zeichen eingegeben und werden im Live Script als formatierter Text angezeigt.

Formatierungen: * Hier steht ein fett gedruckter Text. *

Die Hervorhebung eines Textes erfolgt z.B. durch fett-Schreiben mittels Umschließen mit dem *-Zeichen.
Das Zeilen-beginnende %-Zeichen darf nicht vergessen werden.

Auflistungen:

Auflistungen werden mit einer vorangehenden Kommentarzeile (%) und einer abschließenden Kommentarzeile (%) umschlossen und leiten die einzelnen Listenpunkte ein.
Syntax:
%
% * Listenpunkt 1
% * listenpunkt 2
% * Listenpunkt 3
% * usw.
%

Mathematische Formeln: $ Hier steht ein math. Ausdruck. $

Mathematische Ausdrücke werden von $-Zeichen umschlossen.
Das Zeilen-beginnende %-Zeichen darf nicht vergessen werden: z.B. % $f(x)= x^2$

Für den Quellcode gilt:

Quellcode wird direkt, d.h. ohne weitere Markierung, in der Standard MATLAB-Syntax verfasst und ist im Live Script editierbar.

Der Quellcode und dessen Kommentare (nach %-Zeichen) werden im Live Script in einem grauen Kasten angezeigt.

Kommentare, die in einer Quellcode-Zeile stehen, werden mit dem %-Zeichen begonnen und werden damit bei der Quellcode-Anzeige ergänzt.

3 Live Script Mini-Demo

Als Nächstes erstellen wir eine Mini-Demo, die die wichtigste Funktionalität des Live Editors illustriert. Die Mini-Demo zeigt, wie zwei Arrays und eine Funktion erstellt und auf derselben Figur geplottet werden. Zunächst werden Text- und Codezellen eingefügt, danach wird das Skript in Abschnitte ("Sections") gegliedert, zuletzt werden zwei Slider-Controls eingefügt, mit deren Hilfe wir den Wertebereich und die Schrittweite interaktiv einstellen.

Wir benennen das zuvor erstellte Live Script untitled.mlx um in livescriptdemo.mlx und fügen jeweils einen Titel ("Live Script Demo"), drei Text- und drei Codezellen hinzu. Jedem Codefragment ist eine Textzelle mit einer Kapitelüberschrift (hier: Heading 1, d.h. Überschrift der ersten Ebene) und ggf. zusätzlichen Erläuterungen vorangestellt.

Das Live Script wird durch Anklicken des Run-Buttons komplett ausgeführt, die Ausgabe erscheint im Ausgabefenster oder inline.

3-1 Live Script Sections verwenden

Beim Erstellen eines größeren Live Scripts bietet es sich an, dies in Abschnitte bzw. Sections zu gliedern, die separat ausgeführt werden können. Ein Abschnitt wird per Menü durch Einfügen eines Section Break erstellt, oder per Kommentar-Syntax mit zwei Prozent Zeichen: %%. Man erkennt den aktiven Abschnitt an der blauen Umrahmung. Für das Ausführen von Abschnitten gibt es die Befehle Run Section, Run and Advance und Run to End.

3-2 Live Script Controls verwenden

Damit das Live Script nicht nur gut dokumentiert, sondern tatsächlich auch interaktiv ist, fügt man Steuerelemente ein und verknüpft sie mit den Variablen des Scripts. Hier fügen wir zwei Slider-Controls ein, mit deren Hilfe der Wertebereich über die Variable a und die Schrittweite über die Variable h interaktiv eingestellt werden können.


Das Einfügen geht eines Controls wird folgendermaßen durchgeführt:
In einer Codezelle den Namen einer Variablen und den Zuweisungsoperation = eingeben, z.B. a =, danach in der Menüleiste das Control (hier: Slider Control) durch Anklicken auswählen. Durch Rechtsklick auf das eingefügte Control erscheint ein Konfigurationsmenü (Configure Control etc.), über das Beschriftung, Wertebereich, Schrittweite und die auszuführende Aktion (unter Execution) eingestellt werden kann.

Bei dem Konfigurieren der auszuführenden Aktionen kann man einstellen, dass die Aktion bei oder nach abgeschlossener Änderung des Werts durchgeführt wird, und welche Aktion genau: die Ausführung des aktuellen Abschnitts, aller Abschnitte ab dem aktuellen, oder aller Abschnitte insgesamt.

4 Live Script Fazit

MATLAB Live Scripts sind in Lehre und Forschung eine sehr nützliche Möglichkeit, um selber entwickelte Lösungen vorzuführen und zu teilen. Zwecks Veröffentlichung können Live Scripts als Word, PDF, HTML oder sogar LaTeX exportiert werden. Für die Entwicklung größerer Programme, bei denen es auf Modularisierung und Leistungsfähigkeit ankommt, sind Live Scripts nicht das beste Mittel, hier werden die meisten MATLAB-Nutzer auf die herkömmlichen Skripte und Funktionen zurückgreifen.

MATLAB Live Scripts sind von der Funktionalität her vergleichbar mit Jupyter Notebooks und R Markdown, und bieten wie diese die Möglichkeit, interaktiven und dokumentierten Code zu erstellen und zu teilen. Ein wesentlicher Unterschied zu Jupyter Notebook ist, dass MATLAB Live Scripts nur aus der MATLAB-Entwicklungsumgebung heraus ausgeführt werden können und nicht als alleinstehende Webanwendung, ebenso erfolgt das Teilen der Skripte im geschlossenen MATLAB Kundenbereich.

YouTube-Video

Das folgende Video zeigt an einem Beispiel, wie ein interaktives MATLAB LiveScript erstellt und verwendet werden kann.


Autoren, Tools & Quellen

Autoren:
 Prof. Dr. Eva Maria Kiss
 M. Sc. Anke Welz

elab2go-Links:

Quellen und weiterführende Links: