Logo der Universitaäit Hamburg, nur Graphik Logo des RRZ, nur Graphik
  UHHReg. Rechenzentrum   Suche  

Einführung in die MATLAB-Programmierung

6. M-Files, Matlab-Editor und aktuelles Verzeichnis

Spätestens wenn man Ablaufstrukturen formulieren muß wird der interaktive Betrieb mühsam und der Stapelbetrieb vorteilhaft. Sie können die Matlab-Anweisungen mit jedem beliebigen Editor in eine ASCII-Datei schreiben. Falls auf Ihrer Plattform Matlab einen integrierten Editor hat, etwa unter Windows oder MacOS, so empfiehlt es sich, diesen auch dafür zu verwenden.
Dateien mit Matlab-Anweisungen erhalten den Suffix .m und werden dementsprechend als M-Files bezeichnet.

Beispiel 6.1: Anlegen eines M-Files unter Windows

Vom Matlab-Command-Window aus, rufen Sie über File -> New -> M-File den Matlab-Editor/Debugger auf, der sich mit einem eigenen Eingabe-Fenster meldet, der vorläufige Dateiname des M-Files ist zumeist 'Untitled1.m', wobei der Suffix '.m' nicht ausgegeben wird. In das Editor-Fenster schreiben wir:
   A = 0.01*(0:pi:200*pi);
und speichern mit: File -> Save. Matlab fragt nun in einem neuen Fenster:
  • in welchem Verzeichnis
  • unter welchem Namen
  • mit welchem Suffix (Dateityp)
die Eingabe abgespeichert werden soll. Man kann mit Hilfe der Icons in diesem Fenster im Dateibaum herumklettern und neue Verzeichnisse anlegen. Wir wollen unsere Eingabe im Verzeichnis D:\Matlab99\Donald unter dem Namen Afeld mit dem Suffix .m ablegen, letzteres ist voreingestellt. Der volle Pfadname des M-Files ist also: D:\Matlab99\Donald\Afeld.m.
Falls Sie nun im Matlab-Command Window den Dateinamen (ohne Suffix .m) angeben, also in unserem Falle Afeld prüft Matlab der Reihe nach, ob dieser Name:
  1. zu einer Variablen,
  2. zu einer Standard Funktion (built in function),
  3. zu einem M-File im aktuellen Arbeitsverzeichnis,
  4. zu einem M-File in einem Verzeichnis des Matlab Suchpfades
gehört. Das erste Objekt, auf das dies zutrifft wird genommen und von Matlab ausgeführt.

6.1 Aktuelles Verzeichnis

Die Bedeutung des aktuellen Verzeichnisses wird in Matlab vor allem durch die Tatsache bestimmt, daß Matlab dort nach M-Files sucht. Das momentane, aktuelle Verzeichnis können Sie im Matlab Command Window mit dem Kommando cd abfragen und abändern.

Beispiel 6.2: Aufruf eines M-Files im aktuellen Verzeichnis

Wir fragen zunächst das aktuelle Verzeichnis ab und ändern dieses dann in 'D:\Matlab99\Donald', das wir schon in Beispiel 6.1 benutzt haben. Mit dem nachfolgenden cd wird das neue aktuelle Verzeichnis noch einmal überprüft. Das Kommando Afeld sorgt für die Ausführung der Anweisungen im M-File Afeld.m. Danach ist das Feld A, das in diesem File definiert wird, im Matlab Arbeitsspeicher bekannt und kann genutzt werden.

   » cd
   D:\PASCALMATLAB
   » cd ..\Matlab99\Donald
   » cd
   D:\Matlab99\Donald
   » Afeld
   » A
   A =
     Columns 1 through 7 
         0    0.0031    0.0063    0.0094    0.0126    0.0157    0.0188
     ...................    
Bemerkung: Es kann sein, daß Matlab beim Aufruf von Afeld mit einer Ausgabe wie der folgenden reagiert:
   » Afeld
   ??? At compilation Afeld was an undefined variable or function.
   Function Afeld is now in context.  To use a function that is 
   not in context at compilation use FEVAL or EVAL.
Geben Sie in einem solchen Fall, das Kommando einfach ein zweites mal ein, dann reagiert Matlab wie erwartet. Auf die Ursachen gehen wir später ein.

Aufgabe 6.1:

Kopieren Sie die Anweisungen aus Beispiel 5.5 in ein M-File mit Namen Bisection.m und lassen Sie es vom Command Window aus ausführen.

Das aktuelle Verzeichnis unmittelbar nach dem Aufruf von Matlab ergibt sich:

  • Aus dem Verzeichnis, aus dem Sie Matlab aufgerufen haben, wenn der Aufruf durch die Tastatureingabe matlab erfolgte. Das ist nur unter DOS und Unix möglich.
  • Aus den Eigenschaftsangaben zu einer Windows-Verknüpfung, wenn Sie Matlab durch Anklicken des zugehörigen Icons mit der linken Maus-Taste starten. Anklicken mit der rechten Maus-Taste liefert ein Menue in dem Sie unter anderem das Angebot Eigenschaften mit den Unterangeboten Allgemein und Verknüpfung, in letzterem finden Sie ein editierbares Feld Arbeitsverzeichnis, mit dem Sie das aktuelle Verzeichnis nach Matlab-Start bestimmen.
    Eine weitere Möglichkeit dieses Arbeitsverzeichnis zu bestimmen, bietet der Path Browser den wir weiter unten beschreiben.

6.2 M-Skripte und M-Functions

M-Files sind entwerder M-Skripte oder M-Functions.
Erstere sind einfach eine Folge von Anweisungen, die man lieber in eine Datei schreibt als sie nacheinander interaktiv einzugeben, der Aufruf erfolgt über den Dateinamen und es gibt keinerlei Parameter.
M-Functions sind Erweiterungen des Matlab Funktionsvorrates. Sie haben immer die folgende Struktur:

  function Funktionswert=Funktionsname(Argumentliste)
  % H1-Zeile
  % 0 bis n Zeilen Help Text
  Funktionskörper in dem insbesondere der
  Funktionswert festgelegt wird.

Path Browser

Mit
path, addpath s und rmpath können Sie Ihren Matlab-Suchpfad temporär verändern.

Einige Plattformen bieten Ihnen mit dem Path-Browser einen bequemen Zugang