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

MATLAB - Funktionen

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 sollte gleich sein.

Funktionen arbeiten mit Variablen innerhalb ihres eigenen Arbeitsbereichs, der auch als lokaler Arbeitsbereich bezeichnet wird , getrennt von dem Arbeitsbereich, auf den Sie an der MATLAB-Eingabeaufforderung zugreifen, der als Basisarbeitsbereich bezeichnet wird .

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

Die Syntax einer Funktionsanweisung ist −

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

Beispiel

Die folgende Funktion mit dem Namen mymax sollte in eine Datei namens mymax.m geschrieben werden . Es nimmt fünf Zahlen als Argument und gibt das Maximum der Zahlen zurück.

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

function max = mymax(n1, n2, n3, n4, n5)

%This function calculates the maximum of the
% five numbers given as input
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 . Es gibt den Namen der Funktion und die Reihenfolge der Argumente an. In unserem Beispiel die mymax Die Funktion hat fünf Eingabeargumente und ein Ausgabeargument.

Die Kommentarzeilen direkt nach der Funktionsanweisung liefern den Hilfetext. Diese Zeilen werden ausgegeben, wenn Sie −

eingeben
help mymax

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

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

Sie können die Funktion als −

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

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

ans = 89

Anonyme Funktionen

Eine anonyme Funktion ist wie eine Inline-Funktion in herkömmlichen Programmiersprachen, die in einer einzigen MATLAB-Anweisung definiert ist. Es besteht aus einem einzigen MATLAB-Ausdruck und einer beliebigen Anzahl von Eingabe- und Ausgabeargumenten.

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

Auf diese Weise können Sie einfache Funktionen erstellen, ohne dafür eine Datei erstellen 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 nimmt und die erste Zahl potenziert mit der zweiten Zahl zurückgibt.

Erstellen Sie eine Skriptdatei und geben Sie den 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)

Wenn Sie die Datei ausführen, wird −

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

Primäre und Unterfunktionen

Jede andere Funktion als eine anonyme Funktion 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 ihr verwendet werden.

Primärfunktionen können von außerhalb der Datei, die sie definiert, aufgerufen werden, entweder von der Befehlszeile oder von anderen Funktionen, aber Unterfunktionen können 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 Funktionsdatei sichtbar, die sie definiert.

Beispiel

Lassen Sie uns eine Funktion namens quadratisch schreiben, die die Wurzeln einer quadratischen Gleichung berechnen würde. Die Funktion würde drei Eingaben annehmen, den quadratischen Koeffizienten, den linearen Koeffizienten und den konstanten Term. Es würde die Wurzeln zurückgeben.

Die Funktionsdatei quadratic.m enthält die primäre Funktion quadratisch und die Unterfunktion disk , die die Diskriminante berechnet.

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

function [x1,x2] = quadratic(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of quadratic

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end   % end of sub-function

Sie können die obige Funktion von der Eingabeaufforderung als −

aufrufen
quadratic(2,4,-4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

ans = 0.7321

Verschachtelte Funktionen

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

Verschachtelte Funktionen werden im Bereich einer anderen Funktion definiert und teilen sich den Zugriff auf den Arbeitsbereich der enthaltenden Funktion.

Eine verschachtelte Funktion folgt der folgenden Syntax −

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

Beispiel

Lassen Sie uns die Funktion quadratisch umschreiben , aus dem vorherigen Beispiel, aber diesmal ist die Disc-Funktion eine verschachtelte Funktion.

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

function [x1,x2] = quadratic2(a,b,c)
function disc  % nested function
d = sqrt(b^2 - 4*a*c);
end   % end of function disc

disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of function quadratic2

Sie können die obige Funktion von der Eingabeaufforderung als −

aufrufen
quadratic2(2,4,-4)

MATLAB führt die obige Anweisung aus und gibt das folgende 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 oder mehrerer Funktionen nicht offenlegen möchten, können Sie sie als private Funktionen erstellen.

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

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

Beispiel

Lassen Sie uns die quadratische umschreiben Funktion. Diesmal jedoch die Scheibe Funktion, die die Diskriminante berechnet, wird eine private Funktion sein.

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

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end      % end of sub-function

Erstellen Sie eine Funktion quadratic3.m in Ihrem Arbeitsverzeichnis und geben Sie den folgenden Code darin ein −

function [x1,x2] = quadratic3(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 

x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end      % end of quadratic3

Sie können die obige Funktion von der Eingabeaufforderung als −

aufrufen
quadratic3(2,4,-4)

MATLAB führt die obige Anweisung aus und gibt das folgende 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 vom Basisarbeitsbereich aus auf diese Variable zugreifen möchten, deklarieren Sie die Variable in der Befehlszeile.

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

Beispiel

Lassen Sie uns eine Funktionsdatei namens average.m erstellen und den folgenden Code darin eingeben −

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

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −

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

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt −

av =  35.500

MATLAB

  1. 10 beliebte Funktionen in Stratasys Insight
  2. C++ Funktionen mit Programmbeispielen
  3. Python-Lambda-Funktionen mit BEISPIELE
  4. Verilog-Funktionen
  5. C - Funktionen
  6. MATLAB - Überblick
  7. MATLAB - Variablen
  8. MATLAB - Befehle
  9. MATLAB - Datentypen
  10. MATLAB - Matrix