Was ist der Unterschied zwischen einem Skript und einer Funktion in MATLAB?

8

Was sind die Unterschiede zwischen einer MATLAB-Skriptdatei und einer MATLAB-Funktionsdatei?

    
izzat 08.11.2009, 04:23
quelle

1 Antwort

17

Diese Seite sagt,

  

Skripte und Funktionen

     

Skripte sind m-Dateien, die MATLAB enthalten   Aussagen. MATLAB '' Funktionen '' sind   eine andere Art von m-Datei. Der Größte   Unterschied zwischen Skripten und   Funktionen sind, dass Funktionen eingegeben haben   und Ausgabeparameter. Skriptdateien   kann nur auf die Variablen, die funktionieren   sind in ihrer m-Datei fest codiert. Wie   Sie können sehen, funktioniert viel mehr   flexibel. Sie sind deshalb mehr   geeignet für allgemeine Aufgaben   das wird auf andere angewendet werden   Daten.

     

Skripte sind nützlich für Aufgaben   das ändert sich nicht. Sie sind auch ein Weg   um eine bestimmte Sequenz von zu dokumentieren   Aktionen, sagen wir einen Funktionsaufruf mit   spezielle Parameterwerte, die sein können   schwer zu merken.

     

Es gibt mehr   feine Unterschiede zwischen Skripten und   Funktionen. An ein Skript kann gedacht werden   als Tastaturmakro: wenn Sie den   Name des Skripts, alle   Befehle, die darin enthalten sind, werden ausgeführt   genau so, als hättest du diese getippt   Befehle in das Befehlsfenster.   Somit werden alle in der   Skript wird dem Arbeitsbereich für hinzugefügt   die aktuelle Sitzung. Außerdem, wenn   eine der Variablen im Skript   Datei haben den gleichen Namen wie die in   Ihr aktueller Arbeitsbereich, die Werte von   Diese Variablen im Arbeitsbereich sind   geändert durch die Aktionen im Skript.   Dies kann zu Ihrem Vorteil genutzt werden. Es   kann auch unerwünschte Nebenwirkungen verursachen.

     

Im Gegensatz dazu sind Funktionsvariablen   lokal für die Funktion. (Die Ausnahme   ist es möglich zu deklarieren und   benutze globale Variablen, aber das   erfordert und explizite Maßnahmen von der   Benutzer.) Der lokale Funktionsumfang   Variablen geben Ihnen mehr Sicherheit   und Flexibilität. Der einzige Weg (außer   explizit deklarierte globale Variablen)   um Informationen in und aus a zu bekommen   Funktion ist durch durch die   Variablen in den Parameterlisten.

Beispiel

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

Skriptdatei - display_mult.m

disp(a*b) ;

Beim Eingeben von display_mult wird das Produkt von a und b im Arbeitsbereich angezeigt, d. h. 10*20 oder 200 .

Wenn Sie jedoch eine Funktion namens display_mult definiert haben, die in einer Datei mit demselben Namen definiert ist:

Funktionsdatei - display_mult.m

%Vor%

Sie müssten die beiden Variablen als Argumente für den Funktionsaufruf angeben. Also, display_mult würde diesmal nicht funktionieren, da a und b nicht im Arbeitsbereich der Funktion existieren. Sie müssten sie einschließen, indem Sie display_mult(a,b) ausführen, was das gewünschte Ergebnis anzeigt.

Einfache Erklärung

Jede Anweisung in einem Skript entspricht der Eingabe in das Befehlsfenster von MATLAB. Sie speichern sie nur vorher in einer Datei!

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

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

    
Jacob 08.11.2009 04:36
quelle

Tags und Links