Erstellen einer Funktion in MATLAB

Ammar Ali 25 November 2021
Erstellen einer Funktion in MATLAB

In diesem Tutorial wird die Erstellung von Funktionen mit der Variablen function in MATLAB erläutert.

Erstellen Sie eine Funktion mit der Variablen function in MATLAB

Eine Funktion in Matlab besteht hauptsächlich aus drei Dingen: Ausgabe, Eingabe und Funktionsname. Um eine Funktion zu definieren, verwenden wir die Variable function und definieren dann die Ausgänge, den Funktionsnamen und die Eingänge der Funktion. Danach schreiben wir unseren Code in die Funktion. Der Funktionsname sollte mit einem alphabetischen Zeichen beginnen, und ein Funktionsname kann Zahlen, Ziffern und Unterstriche enthalten. Um das Ende einer Funktion anzuzeigen, können wir die Variable end verwenden. Sehen Sie sich zum Beispiel den folgenden Code an.

function outputs = function_Name(inputs)
    Your code
end

Eine Funktion kann nur einen Ausgang haben. Lassen Sie uns zum Beispiel eine Funktion definieren, die ein Array von Zahlen akzeptiert, und die Ausgabe der Funktion ist der Durchschnitt des Arrays. Siehe den Code unten.

vect = [1 3 5]
averg = average(vect)


function a = average(v)
a = mean(v);
end

Ausgabe:

vect =

     1     3     5


averg =

     3

Eine Funktion kann auch zwei Ausgänge haben. Lassen Sie uns zum Beispiel eine Funktion definieren, die ein Array akzeptiert und uns den Mittelwert des Arrays und die Standardabweichung liefert. Siehe den Code unten.

vect = [1 3 5]
[averg, stanD] = average(vect)


function [a,s] = average(v)
a = mean(v);
s = std(v);
end

Ausgabe:

vect =

     1     3     5


averg =

     3


stanD =

     2

Wir können eine Funktion in einer Skriptdatei definieren, müssen sie jedoch am Ende des Codes definieren. Sie können auch mehrere Funktionen in einer einzigen Datei definieren, und alle Funktionen sollten sich am Ende des Codes befinden. Eine Funktion kann auch eine andere Funktion aufrufen. Sie können beispielsweise zwei Funktionen definieren und die zweite Funktion kann die erste Funktion aufrufen. Wir können auch Funktionen mit Eingabevalidierung definieren, um die Eingaben zu überprüfen. Lassen Sie uns zum Beispiel eine Funktion definieren, die die Eingabe überprüft, ob es eine Ganzzahl ist oder nicht, und wenn es eine Ganzzahl ist, führt sie die Operation aus; Andernfalls wird ein Fehler gesendet. Das können wir mit den variablen Argumenten tun. Siehe den Code unten.

vect = 'a';
[averg, stanD] = average(vect)


function [a,s] = average(v)
arguments
        v {mustBeNumeric, mustBeFinite}
    end
a = mean(v);
s = std(v);
end

Ausgabe:

Error using Untitled>average
Invalid argument at position 1. Value must be numeric.

Error in Untitled (line 3)
[averg, stanD] = average(vect)

Im obigen Code haben wir anstelle eines numerischen Arrays einen String übergeben, und Matlab hat einen Fehler angezeigt, der besagt, dass der Wert numerisch sein muss. Denken Sie daran, dass Sie beim Aufrufen einer Funktion die spezifischen Ein- und Ausgänge bereitstellen sollten. Wenn wir beispielsweise eine Funktion mit zwei Eingängen und zwei Ausgängen definiert haben, sollten wir während des Funktionsaufrufs zwei Eingänge und zwei Ausgänge definieren; Andernfalls wird ein Fehler angezeigt, wenn Sie jedoch eine Funktion mit einer variablen Anzahl von Ausgängen und Eingängen definieren möchten. Wir können dies tun, indem wir die Variable varargin verwenden, um die Variableneingaben einer Funktion zu definieren. Wir können die Variable nargin verwenden, die uns sagt, wie viele Eingaben der Benutzer gemacht hat. Danach können wir Bedingungen für die Eingaben festlegen. Zum Beispiel können wir Anforderungen definieren, dass, wenn der Benutzer eine Eingabe eingibt, dies die Ausgabe ist, und wenn der Benutzer zwei Eingaben eingibt, dies die Ausgabe ist und so weiter. Lassen Sie uns zum Beispiel eine Funktion definieren, die uns die Anzahl der vom Benutzer eingegebenen Eingaben liefert. Siehe den Code unten.

NumInputs('a',2,"start")

function NumInputs(varargin)
    disp("Number of inputs: " + nargin)
    celldisp(varargin)
end

Ausgabe:

Number of inputs: 3
 
varargin{1} =
 
a
 
 
varargin{2} =
 
     2

 
 
varargin{3} =
 
start

Außerdem können wir mit der Variable varargout variable Ausgaben in einer Funktion definieren und mit der Variablen nargout verfolgen, wie viele Ausgaben der Benutzer definiert hat. Lassen Sie uns zum Beispiel eine Funktion definieren, die uns den Mittelwert und die Standardabweichung liefert. Wenn der Benutzer nur einen Ausgang definiert, gibt die Funktion nur den Mittelwert des Arrays zurück. Wenn der Benutzer zwei Ausgabevariablen definiert, gibt die Funktion die Standardabweichung und den Mittelwert des Arrays zurück. Siehe den Code unten.

v = [1 2 6];
[m]= AVGSTD(v)
[mean,st] = AVGSTD(v)

function [m,varargout] = AVGSTD(v)
    m = mean(v);
    if(nargout>1)
        varargout{1} = std(v);
    end
end

Ausgabe:

m =

     3


mean =

     3


st =

    2.6458

Im obigen Code haben wir die Funktion AVGSTD() zweimal aufgerufen, das erste Mal mit nur einem Ausgang und das zweite Mal mit zwei Ausgängen. Beim ersten Aufruf gab die Funktion nur den Mittelwert zurück, beim zweiten Aufruf gab die Funktion den Mittelwert und die Standardabweichung zurück. Wir können auch die Anzahl der Ausgaben mit dem Variablenargument validieren. Wenn der Benutzer beispielsweise versucht, mehr als zwei Variablen in die Ausgabe einzugeben, können wir ihm einen Fehler anzeigen, dass diese Funktion nur zwei Ausgaben akzeptiert. Wir können auch wiederverwendbare Funktionen in Matlab definieren, die in einer Datei gespeichert werden, und wir können sie mit dem Dateinamen aufrufen. Um eine solche Funktion zu definieren, müssen wir nur die Matlab-Datei im Namen der Funktion benennen. Wenn die Funktion beispielsweise den Namen Durchschnitt hat, sollte die Matlab-Datei denselben Namen haben. Um die Funktion aufzurufen, müssen wir eine weitere Skriptdatei im selben Verzeichnis erstellen, in dem die Funktionsdatei abgelegt wurde, und wir können die Funktion mit ihrem Namen in der Skriptdatei aufrufen.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Function