Link - Hochschule Ulm
Link - Hochschule Ulm
Link - Hochschule Ulm
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
en und damit die Funktionalität von Matlab<br />
erweitern. Mit Hilfe von Function-Files<br />
(Matlab-Funktionen, Funktionen) können Sie<br />
den Matlab-Funktionsvorrat erweitern. Variablen<br />
in Function-Files sind lokale Variablen.<br />
Function-Files haben demnach ihren eigenen<br />
nach außen nicht sichtbaren Workspace.<br />
Die Übergabe einzelner Variablen erfolgt über<br />
eine Parameterliste im Funktionsaufruf. Ein<br />
Function-File entspricht der subroutine bzw.<br />
function in der Programmiersprache Fortran,<br />
function in C/C++ und procedure bzw. function<br />
in Pascal. Haben Sie eine Funktion in Form<br />
eines Function-Files geschrieben, so können<br />
Sie diesen genauso aufrufen, wie die eingebauten<br />
Matlab-Funktionen. Für das Schreiben eines<br />
Function-Files sind verschiedene Dinge zu<br />
beachten.<br />
Damit ein File ein Function-File ist, muss er<br />
mit dem Schlüsselwort function beginnen,<br />
dann folgen die Ausgabeargumente (in eckigen<br />
Klammern), der Funktionsname und schließlich<br />
die Eingabeargumente (in runden Klammern).<br />
Die Form aller Function-Files ist<br />
1 function [Out_1,...,Out_n] =<br />
2 Name(In_1,...,In_m)<br />
3 < Irgendwelche Anweisungen ><br />
wobei Name der vom Anwender anzugebende<br />
Funktionsname ist. Der Funktionsname<br />
(hier Name) muss auch der Filename sein, unter<br />
der der Function-File abgespeichert wird.<br />
Es ist möglich, dass ein Function-File keine<br />
Ausgabe- und/oder Eingabeargumente hat.<br />
Die folgende Funktion ist ein Beispiel für<br />
einen Function-File.<br />
1 function [V,D,r] = MatrixEig(A)<br />
2 [m,n] = size(A);<br />
3 if m==n<br />
4 [V,D] = eig(A);<br />
5 r = rank(A);<br />
6 else<br />
7 disp(’Fehler: Die Matrix muss<br />
8 quadratisch sein!’)<br />
9 end<br />
Schreiben Sie sich die obigen Anweisungen<br />
in eine Datei mit dem Namen MatrixEig.m<br />
und definieren Sie eine Matrix A im Matlab-<br />
Workspace. Führen Sie<br />
1 >> [V,D,r] = MatrixEig(A)<br />
aus, dann stehen in der Matrix V die Eigenvektoren,<br />
in der Hauptdiagonalen von D die<br />
Eigenwerte und in r der Rang der Matrix A.<br />
V,D,r sind die Ausgabe- und A das Eingabeargument<br />
der Funktion MatrixEig. Der von uns<br />
geschriebene Function-File MatrixEig ruft<br />
mehrer eingebaute Matlab-Funktionen auf:<br />
size, eig, usw.<br />
Functions können sowohl von anderen Functions<br />
als auch von Scripts aufgerufen werden.<br />
Es ist eine Stärke von Matlab-Funktionen,<br />
mit einer unterschiedlichen Anzahl von Übergabeparameter<br />
zurechtzukommen. Hierzu exisitieren<br />
innerhalb einer Funktion die Variablen<br />
nargin und nargout (number argument<br />
in/out), die die Anzahl der übergebenen<br />
Parameter enthalten. Zusätzlich stehen noch<br />
die Befehle inputname zum Ermitteln der<br />
Variablennamen der Übergabeargumente und<br />
nargchk zum Überprüfen der korrekten Anzahl<br />
der übergebenen Argumente zur Verfügung.<br />
Siehe doc nargin, doc nargout, doc<br />
inputname und doc nargchk für entspre-<br />
75 Copyright c○ G. Gramlich