2009-11-08 9 views

Antwort

17

This page sagt

Scripts im Vergleich Funktionen

Scripts m-Dateien mit MATLAB Aussagen. MATLAB `` functions '' sind ein anderer Typ von m-Datei. Der größte Unterschied zwischen Skripten und Funktionen ist, dass Funktionen Eingang und Ausgabeparameter haben. Skriptdateien können nur mit den Variablen arbeiten, die in ihre m-Datei fest codiert sind. Als können Sie sehen, funktioniert viel mehr flexibel. Sie sind daher mehr geeignet für allgemeine Aufgaben , die auf andere Daten angewendet werden.

Skripte sind nützlich für Aufgaben , die nicht ändern. Sie sind auch eine Möglichkeit eine bestimmte Folge von Aktionen zu dokumentieren, sagen wir einen Funktionsaufruf mit speziellen Parameterwerten, die schwer zu merken sein können.

Es gibt mehr feine Unterschiede zwischen Skripten und Funktionen. Ein Skript kann man sich als Tastaturmakro vorstellen: Wenn Sie den Namen des Skripts eingeben, werden alle enthaltenen Befehle ausgeführt, als ob Sie diese Befehle in das Befehlsfenster eingegeben hätten. Somit werden alle im Skript erstellten Variablen dem Arbeitsbereich für der aktuellen Sitzung hinzugefügt. Wenn eine der Variablen in der Datei den gleichen Namen wie die in Ihres aktuellen Arbeitsbereichs hat, werden die Werte diese Variablen im Arbeitsbereich durch die Aktionen im Skript geändert. Dies kann zu Ihrem Vorteil verwendet werden. Es kann auch unerwünschte Nebenwirkungen verursachen.

Im Gegensatz dazu sind die Funktionsvariablen lokal für die Funktion. (Die Ausnahme ist, dass es möglich ist, zu erklären und verwenden globale Variablen, aber das erfordert und explizite Aktion des Benutzer.) Der lokale Umfang der Funktion Variablen gibt Ihnen mehr Sicherheit und Flexibilität. Der einzige Weg (neben explizit deklarierten globalen Variablen) Informationen in und aus einer Funktion zu erhalten, ist durch die Variablen in den Parameterlisten.

Beispiel

Einer der wichtigsten Unterschiede zwischen einem Skript und Funktion ist der Zugriff auf Variablen im Arbeitsbereich. Angenommen, Sie haben im Arbeitsbereich zwei Variablen a = 10 und b = 20 definiert. Diese Variablen werden in der Befehlszeile der Haupteingabeaufforderung definiert.

Script-Datei - display_mult.m

disp(a*b);

display_mult Typing würde das Produkt von a und b im Arbeitsbereich angezeigt werden, das heißt 10*20 oder 200.

Aber wenn Sie eine Funktion definiert, die so genannte display_mult in einer Datei mit dem gleichen Namen definiert:

Funktion Datei - display_mult.m

function display_mult(a,b) 
    disp(a*b); 
end 

würden Sie müssen die beiden umfassen Variablen als Argumente für den Funktionsaufruf. Also, display_mult würde nicht arbeiten dieses Mal seit a und b nicht im Arbeitsbereich der Funktion existiert. Sie müssten sie einschließen, indem Sie display_mult(a,b) ausführen, die das gewünschte Ergebnis anzeigen.

Einfache Erklärung

Jede Anweisung in einem Skript entspricht sie aus im Befehlsfenster von MATLAB zu tippen. Sie speichern sie nur vorher in einer Datei!

Eine Funktion dagegen nimmt Argumente auf und ist ein "neuer" Arbeitsbereich, getrennt vom Hauptarbeitsbereich.

Hinweis: Die end am Ende eines Funktionsaufrufs ist optional, aber ich mag es hinzufügen, um die Dinge organisiert zu machen. Wenn Sie mehrere Funktionsdefinitionen in einer Datei haben, müssen sie natürlich alle mit end enden. Außerdem können Sie in derselben Datei kein Skript und keine Funktionsdefinition haben.

+0

Beispiel? Kannst du mir ein Beispiel geben? – izzat

+0

Ein Beispiel hinzugefügt und die Lösung erweitert – Jacob

Verwandte Themen