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:
- zu einer Variablen,
- zu einer Standard Funktion (built in function),
- zu einem M-File im aktuellen Arbeitsverzeichnis,
- 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