13.01.2014 Aufrufe

Link - Hochschule Ulm

Link - Hochschule Ulm

Link - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!