MATLAB m-Files m-Files sind Folgen von MATLAB-Anweisungen oder Daten-Files. Erstellen von m-Files Über File New M-file wird ein Texteditor geöffnet. Dort wird das m-File als ASCII-File erzeugt und unter name.m im Arbeitsverzeichnis von MATLAB gespeichert. Achtung: das Arbeitsverzeichnis kann unter Windows über Programmeigenschaften eingestellt werden oder über das Kommando path in MATLAB. M-Files werden nur im Arbeitsverzeichnis gefunden! Daten-Files Erfordert die Aufgabenstellung die Verarbeitung großer Datenmengen, gibt man sie in Form eines m-Files ein, da hier bessere Editiermöglichkeiten bestehen als im Kommando-Fenster. Das m-File wird unter name.m im Arbeitsverzeichnis von MATLAB gespeichert und kann im Kommando-Fenster durch Aufruf von name in den Arbeitsspeicher geladen werden Skript-Files sind Folgen von MATLAB-Anweisungen. Sie werden unter name.m im Arbeitsverzeichnis gespeichert. Durch den Aufruf von name im Kommando-Fenster wird die Abarbeitung gestartet. Skript-Files arbeiten ohne Parameterübergabe, alle Variablen sind global. Funktions-Files zur Definition von Funktionen. Dabei müssen die Bezeichnung des Files, gefolgt von der Extention m, und der Funktionsname gleich sein. Es können Argumente übergeben werden, und ein Funktionswert wird zurückgeliefert. function Funktionswert=Funktionsname(Argumentliste) %Kommentar Anweisungen Der Variablen Funktionswert wird in der Anweisungsfolge das Resultat zugewiesen. Alle anderen Variablen im m-File sind lokal. Folgende Kontrollstrukturen stehen zur Ablaufsteuerung zur Verfügung if-Anweisung if Bedingung Anweisung; end oder erweitert if Bedingung1 Anweisung1 elseif Bedingung2 Anweisung2 ... else Anweisung end for-Anweisung for zaehler=bereich Anweisungen end Dabei ist bereich ein Vektor, der die Anzahl der Schleifendurchgänge bestimmt. Die Laufvariable zaehler nimmt als Wert der Reihe nach dieKomponenten von bereich an. Bsp. for i = 1:2:100 while-Anweisung while Bedingung Anweisungen end Der Aufruf eines Funktions-Files erfolgt in MATLAB über Name(....). 1 MATLAB m-Files Beispiel für ein Funktions-File function y=f(x); c=5; y=x^2+c Speichert man diese Folge unter f.m im Arbeitsverzeichnis, kann man im Kommandofenster z. B. f(3) aufrufen. Die Variable c ist lokal, d.h. vom Kommandofenster aus nicht abrufbar. Möchte man auf eine Variable eines Funktions-Files außerhalb zugreifen, muß sie sowohl im Kommandofenster als auch im Funktions-File als global deklariert sein. 1. Schreiben Sie ein m-file, dem Sie als Parameter zwei dreidimensionale Vektoren übergeben und das als Ergebnis das Skalarprodukt zurückgibt. 2. Schreiben Sie ein m-File, das den Betrag eines Vektors beliebiger Dimension zurückgibt. Es soll für Zeilen- und Spaltenvektoren funktionieren. 3. Für drei dreidimensionale Vektoren soll das Spatprodukt berechnet werden. Fügen Sie einen Test ein, der bewirkt, daß die Ausschrift ‘Dimensionsfehler’ zurückgegeben wird,, wenn nicht drei dreidimensionale Vektoren übergeben wurden. Hinweis: Bildschirmausschrift durch disp(‘string’) 4. Schreiben Sie ein m-File, das bei Übergabe einer natürlichen Zahl n den Wert n! berechnet. 5. Schreiben Sie ein m-File, das bei Übergabe von zwei natürlichen Zahlen n, m den Binomialkoeffizienten berechnet, wenn das möglich ist, sonst die Ausschrift ‘nicht definiert’. 6. Versuchen Sie, numerisch nachzuweisen, daß die harmonische Reihe divergiert. Schreiben Sie dazu ein m-File, das die Partialsummen vorgegebener Ordnung berechnet. 7. Untersuchen Sie numerisch die Leibniz-Reihe auf Konvergenz! 8. Erzeugen Sie ein m-File, das eine 3x3-Matrix enthält. Rufen Sie das m-File von der Kommandoebene aus auf. 9. Schreiben Sie ein Funktions-File iszero(X,tol), das den Wert 1 zurückgibt, falls die Beträge aller Elemente von X kleiner als tol sind, sonst soll 0 zurückgegeben werden. 2 Beispiele und Aufgaben zu den Kontrollstrukturen 1. For – Schleife Beispiel 1: Im folgenden Quelltext wird ein Vektor a erstellt – Welche Dimension hat er? Welche Zahlen enthält er? Beispiel 2: Im folgenden Quelltext wird eine Schar von Parabeln geplottet – Welche Parabeln? Beispiel 3: Im folgenden Quelltext werden Matrizen erstellt – schreiben Sie die Matrix für k=4 per Hand auf! 2. If – Auswahl Beispiel 1: Definition und Plot einer zusammengesetzten Funktion – Welcher? Beispiel 2: Was macht die folgende Funktion? 3. While – Schleife Beispiel 1: Im folgenden Quelltext werden Matrizen erstellt – schreiben Sie die Matrix für k=4 per Hand auf! 4. Switch-Case – Auswahl Beispiel 1: Im folgenden Quelltext werden Monaten Tage zugeordnet. Schreiben Sie mit diesem Quelltext eine Funktion „Monattage(x)“, welche zu einer Monatsnummer x die entsprechende Anzahl von Tagen zurückgibt.