Hauptinhalt

Funktionen zur Argumentvalidierung

MATLAB definiert Funktionen zur Verwendung bei der Argumentvalidierung. Diese Funktionen unterstützen gängige Anwendungsmuster für die Validierung und liefern aussagekräftige Fehlermeldungen. Die folgenden Tabellen kategorisieren die Validierungsfunktionen von MATLAB® und beschreiben deren Verwendung.

Numerische Wertattribute

Name

Bedeutung

Bei Eingaben aufgerufene Funktionen

mustBePositive(value)

value > 0

gt, isreal, isnumeric, islogical

mustBeNonpositive(value)

value <= 0

ge, isreal, isnumeric, islogical

mustBeNonnegative(value)

value >= 0

ge, isreal, isnumeric, islogical

mustBeNegative(value)

value < 0

lt, isreal, isnumeric, islogical

mustBeFinite(value)

value hat keine NaN- und keine Inf-Elemente.

allfinite

mustBeNonNan(value)

value hat keine NaN-Elemente.

anynan

mustBeNonzero(value)

value ~= 0

eq, isnumeric, islogical

mustBeNonsparse(value)

value ist nicht spärlich.

issparse

mustBeSparse(value)

value ist spärlich.

issparse

mustBeReal(value)

value hat keinen imaginären Teil.

isreal

mustBeInteger(value)

value == floor(value)

isreal, isfinite, floor, isnumeric, islogical

mustBeNonmissing(value)

value darf keine fehlenden Werte enthalten.

anymissing

Vergleich mit anderen Werten

Name

Bedeutung

Bei Eingaben aufgerufene Funktionen

mustBeGreaterThan(value,c)

value > c

gt, isreal, isnumeric, islogical

mustBeLessThan(value,c)

value < c

lt, isreal, isnumeric, islogical

mustBeGreaterThanOrEqual(value,c)

value >= c

ge, isreal, isnumeric, islogical

mustBeLessThanOrEqual(value,c)

value <= c

le, isreal, isnumeric, islogical

Zugehörigkeit und Bereich

Name

Bedeutung

Bei Eingaben aufgerufene Funktionen

mustBeMember(value,S)

value entspricht genau einem Bestandteil von S.

ismember

mustBeBetween(value,lower,upper)value muss sich innerhalb des Bereichs befinden.

allbetween

Datentypen

Name

Bedeutung

Bei Eingaben aufgerufene Funktionen

mustBeA(value,classnames)

value muss einer bestimmten Klasse angehören.

Verwendet Klassendefinitionsbeziehungen

mustBeNumeric(value)

value muss numerisch sein.

isnumeric

mustBeNumericOrLogical(value)

value muss numerisch oder logisch sein.

isnumeric, islogical

mustBeFloat(value)

value muss ein Gleitkomma-Array sein.

isfloat

mustBeUnderlyingType(value,typename)

value muss einen bestimmten Basistyp haben.

isUnderlyingType

Größe

Name

Bedeutung

Bei Eingaben aufgerufene Funktionen

mustBeNonempty(value)

value nicht leer ist.

isempty

mustBeScalarOrEmpty(value)value muss ein Skalar oder leer sein.

isscalar, isempty

mustBeVector(value)value muss ein Vektor sein.

isvector

mustBeRow(value)value muss ein 1-mal-N-Zeilenvektor sein.

isrow

mustBeColumn(value)value muss ein M-mal-1-Spaltenvektor sein.

iscolumn

mustBeMatrix(value)value muss eine M-mal-N-Matrix sein.

ismatrix

Text

Name

Bedeutung

Bei Eingaben aufgerufene Funktionen

mustBeFile(path)

path muss sich auf eine Datei beziehen.

isfile

mustBeFolder(folder)path muss sich auf einen Ordner beziehen.

isfolder

mustBeNonzeroLengthText(value)

value muss ein Textabschnitt mit einer Länge ungleich Null sein.

Nicht zutreffend

mustBeText(value)

value muss ein Zeichenfolgenarray, ein Zeichenvektor oder ein Zellenarray aus Zeichenvektoren sein.

Nicht zutreffend

mustBeTextScalar(value)

value muss ein einzelner Textabschnitt sein.

Nicht zutreffend
mustBeValidVariableName(varname)varname muss ein gültiger Variablenname sein.

isvarname

Definieren von Validierungsfunktionen

Validierungsfunktionen sind MATLAB-Funktionen, die die Anforderungen an Werte überprüfen, die in Funktionen oder Eigenschaften eingegeben werden. Validierungsfunktionen bestimmen, wann Fehler ausgegeben werden und welche Fehlermeldungen angezeigt werden sollen.

Die für die Validierung verwendeten Funktionen weisen folgende Designelemente auf:

  • Validierungsfunktionen geben keine Ergebnisse zurück und ändern den Programmstatus nicht. Der einzige Zweck besteht darin, die Gültigkeit des Eingabewerts zu überprüfen.

  • Validierungsfunktionen müssen den zu validierenden Wert als Argument akzeptieren. Wenn die Funktion mehr als ein Argument akzeptiert, ist die erste Eingabe der zu validierende Wert.

  • Validierungsfunktionen basieren ausschließlich auf den Eingaben. Der Funktion stehen keine weiteren Werte zur Verfügung.

  • Validierungsfunktionen lösen einen Fehler aus, wenn die Validierung fehlschlägt.

Das Erstellen einer eigenen Validierungsfunktion ist sinnvoll, wenn Sie eine spezifische Validierung bereitstellen möchten, die mit den Validierungsfunktionen von MATLAB nicht verfügbar ist. Sie können eine Validierungsfunktion als lokale Funktion innerhalb der Funktionsdatei erstellen oder sie im MATLAB-Pfad ablegen. Um eine Häufung von Fehlermeldungen zu vermeiden, sollten Sie die Funktionsargumentvalidierung nicht innerhalb benutzerdefinierter Validierungsfunktionen verwenden.

Beispielsweise beschränkt die Funktion mustBeRealUpperTriangular die Eingabe auf reellwertige, obere Dreiecksmatrizen. Die Validierungsfunktion nutzt die Funktionen istriu und isreal.

function mustBeRealUpperTriangular(a)
    if ~(istriu(a) && isreal(a))
        eidType = 'mustBeRealUpperTriangular:notRealUpperTriangular';
        msgType = 'Input must be a real-valued, upper triangular matrix.';
        error(eidType,msgType)
    end
end

Wenn das Argument nicht vom richtigen Typ ist, löst die Funktion einen Fehler aus.

a = [1 2 3+2i; 0 2 3; 0 0 1];
mustBeRealUpperTriangular(a)
Input must be a real-valued, upper triangular matrix.

Siehe auch

Themen