Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> MATLAB

MATLAB-Funktionen: Definition, Workspace, Ein- & Ausgaben

Eine Funktion ist eine Gruppe von Anweisungen, die zusammen eine Aufgabe ausführen. In MATLAB werden Funktionen in separaten Dateien definiert. Der Name der Datei und der Funktion sollten identisch sein.

Funktionen arbeiten mit Variablen in ihrem eigenen Workspace, der auch lokaler Workspace genannt wird und vom Workspace, auf den Sie an der MATLAB-Eingabeaufforderung zugreifen (der Basis-Workspace), getrennt ist.

Funktionen können mehr als ein Eingabeargument akzeptieren und mehr als ein Ausgabeargument zurückgeben.

Syntax einer Funktionsanweisung:

 function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN) 

Beispiel

Die folgende Funktion namens mymax sollte in einer Datei namens mymax.m geschrieben werden. Sie nimmt fünf Zahlen als Argumente entgegen und gibt das Maximum der Zahlen zurück.

Erstellen Sie eine Funktionsdatei namens mymax.m und geben Sie folgenden Code ein:

 function max = mymax(n1, n2, n3, n4, n5) %Diese Funktion berechnet das Maximum der % fünf Zahlen, die als Eingabe gegeben werden max = n1; if(n2 > max) max = n2; end if(n3 > max) max = n3; end if(n4 > max) max = n4; end if(n5 > max) max = n5; end 

Die erste Zeile einer Funktion beginnt mit dem Schlüsselwort function. Sie gibt den Namen der Funktion und die Reihenfolge der Argumente an. In unserem Beispiel hat die Funktion mymax fünf Eingabeargumente und ein Ausgabeargument.

Die Kommentarzeilen, die direkt auf die Funktionsanweisung folgen, liefern den Hilfetext. Diese Zeilen werden ausgegeben, wenn Sie eingeben:

 help mymax 

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 This function calculates the maximum of the five numbers given as input 

Sie können die Funktion wie folgt aufrufen:

 mymax(34, 78, 89, 23, 11) 

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 89 

Anonyme Funktionen

Eine anonyme Funktion ähnelt einer Inline-Funktion in traditionellen Programmiersprachen und wird innerhalb einer einzelnen MATLAB-Anweisung definiert. Sie besteht aus einem einzelnen MATLAB-Ausdruck und einer beliebigen Anzahl von Ein- und Ausgabeargumenten.

Sie können eine anonyme Funktion direkt an der MATLAB-Befehlszeile oder innerhalb einer Funktion oder eines Skripts definieren.

So können Sie einfache Funktionen erstellen, ohne dafür eine Datei anlegen zu müssen.

Die Syntax zum Erstellen einer anonymen Funktion aus einem Ausdruck lautet:

 f = @(arglist)expression 

Beispiel

In diesem Beispiel schreiben wir eine anonyme Funktion namens power, die zwei Zahlen als Eingabe entgegennimmt und die erste Zahl zur Potenz der zweiten Zahl zurückgibt.

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 power = @(x, n) x.^n; result1 = power(7, 3) result2 = power(49, 0.5) result3 = power(10, -10) result4 = power (4.5, 1.5) 

Beim Ausführen der Datei wird folgendes angezeigt:

 result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459 

Primäre und Unterfunktionen

Jede Funktion, die keine anonyme Funktion ist, muss in einer Datei definiert werden. Jede Funktionsdatei enthält eine erforderliche primäre Funktion, die zuerst erscheint, und eine beliebige Anzahl optionaler Unterfunktionen, die nach der primären Funktion kommen und von dieser verwendet werden.

Primäre Funktionen können von außerhalb der Datei, die sie definiert, aufgerufen werden, entweder von der Befehlszeile oder von anderen Funktionen. Unterfunktionen können jedoch nicht von der Befehlszeile oder anderen Funktionen außerhalb der Funktionsdatei aufgerufen werden.

Unterfunktionen sind nur für die primäre Funktion und andere Unterfunktionen innerhalb der sie definierenden Funktionsdatei sichtbar.

Beispiel

Schreiben wir eine Funktion namens quadratic, die die Nullstellen einer quadratischen Gleichung berechnet. Die Funktion nimmt drei Eingaben entgegen: den quadratischen Koeffizienten, den linearen Koeffizienten und den konstanten Term. Sie gibt die Nullstellen zurück.

Die Funktionsdatei quadratic.m enthält die primäre Funktion quadratic und die Unterfunktion disc, die den Diskriminanten berechnet.

Erstellen Sie eine Funktionsdatei quadratic.m und geben Sie folgenden Code ein:

 function [x1,x2] = quadratic(a,b,c) %diese Funktion gibt die Nullstellen von % einer quadratischen Gleichung zurück. % Sie nimmt 3 Eingabeargumente entgegen, % die die Koeffizienten von x^2, x und den % konstanten Term sind % Sie gibt die Nullstellen zurück d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % Ende der quadratic-Funktion dis = disc(a,b,c) %Funktion berechnet den Diskriminanten dis = sqrt(b^2 - 4*a*c); end % Ende der Unterfunktion 

Sie können die obige Funktion von der Eingabeaufforderung wie folgt aufrufen:

 quadratic(2,4,-4) 

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 0.7321 

Verschachtelte Funktionen

Sie können Funktionen innerhalb des Körpers einer anderen Funktion definieren. Diese werden als verschachtelte Funktionen bezeichnet. Eine verschachtelte Funktion enthält alle oder einige Komponenten jeder anderen Funktion.

Verschachtelte Funktionen werden im Gültigkeitsbereich einer anderen Funktion definiert und teilen den Zugriff auf den Workspace der sie enthaltenden Funktion.

Eine verschachtelte Funktion folgt der folgenden Syntax:

 function x = A(p1, p2) ... B(p2) function y = B(p3) ... end ... end 

Beispiel

Schreiben wir die Funktion quadratic aus dem vorherigen Beispiel neu, diesmal jedoch als verschachtelte Funktion.

Erstellen Sie eine Funktionsdatei quadratic2.m und geben Sie folgenden Code ein:

 function [x1,x2] = quadratic2(a,b,c) function disc % verschachtelte Funktion d = sqrt(b^2 - 4*a*c); end % Ende der Funktion disc disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % Ende der Funktion quadratic2 

Sie können die obige Funktion von der Eingabeaufforderung wie folgt aufrufen:

 quadratic2(2,4,-4) 

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 0.73205 

Private Funktionen

Eine private Funktion ist eine primäre Funktion, die nur für eine begrenzte Gruppe anderer Funktionen sichtbar ist. Wenn Sie die Implementierung einer Funktion nicht offenlegen möchten, können Sie sie als private Funktion erstellen.

Private Funktionen befinden sich in Unterordnern mit dem speziellen Namen private.

Sie sind nur für Funktionen im übergeordneten Ordner sichtbar.

Beispiel

Schreiben wir die quadratic-Funktion neu. Diesmal wird die disc-Funktion, die den Diskriminanten berechnet, eine private Funktion sein.

Erstellen Sie einen Unterordner namens private im Arbeitsverzeichnis. Speichern Sie die folgende Funktionsdatei disc.m darin:

 function dis = disc(a,b,c) %Funktion berechnet den Diskriminanten dis = sqrt(b^2 - 4*a*c); end % Ende der Unterfunktion 

Erstellen Sie eine Funktion quadratic3.m in Ihrem Arbeitsverzeichnis und geben Sie folgenden Code ein:

 function [x1,x2] = quadratic3(a,b,c) %diese Funktion gibt die Nullstellen von % einer quadratischen Gleichung zurück. % Sie nimmt 3 Eingabeargumente entgegen, % die die Koeffizienten von x^2, x und den % konstanten Term sind % Sie gibt die Nullstellen zurück d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % Ende von quadratic3 

Sie können die obige Funktion von der Eingabeaufforderung wie folgt aufrufen:

 quadratic3(2,4,-4) 

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 0.73205 

Globale Variablen

Globale Variablen können von mehr als einer Funktion gemeinsam genutzt werden. Dazu müssen Sie die Variable in allen Funktionen als global deklarieren.

Wenn Sie auf diese Variable aus dem Basis-Workspace zugreifen möchten, deklarieren Sie die Variable an der Befehlszeile.

Die globale Deklaration muss erfolgen, bevor die Variable tatsächlich in einer Funktion verwendet wird. Es ist gute Praxis, für die Namen globaler Variablen Großbuchstaben zu verwenden, um sie von anderen Variablen zu unterscheiden.

Beispiel

Erstellen wir eine Funktionsdatei namens average.m und geben Sie folgenden Code ein:

 function avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; end 

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

 global TOTAL; TOTAL = 10; n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42]; av = average(n) 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 av = 35.500 

MATLAB

  1. 10 wesentliche Insight-Features zur Optimierung des Stratasys FDM-Drucks
  2. C++-Funktionen erklärt: Mit praktischen Code-Beispielen
  3. Python Lambda-Funktionen meistern: Praxisbeispiele & Best Practices
  4. Verilog Functions meistern für effizientes RTL-Design
  5. C-Funktionen meistern: Struktur, Deklaration & Best Practices
  6. MATLAB: Umfassender Überblick über die führende numerische Computing-Umgebung
  7. Variablen in MATLAB verstehen: Grundlagen & Beispiele
  8. Wichtige MATLAB-Befehle für effizientes Computing
  9. MATLAB Datentypen: Umfassender Leitfaden
  10. MATLAB Matrizen Grundlagen: Erstellen, Referenzieren, Manipulieren