Contenido principal

Funciones de validación de argumentos

MATLAB define funciones para utilizarlas en la validación de argumentos. Estas funciones admiten patrones de uso comunes para la validación y proporcionan mensajes de error descriptivos. En las tablas siguientes se clasifican las funciones de validación de MATLAB® y se describe su uso.

Atributos de los valores numéricos

Nombre

Significado

Funciones llamadas sobre los valores de entrada

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 no tiene elementos NaN ni Inf.

allfinite

mustBeNonNan(value)

value no tiene elementos NaN.

anynan

mustBeNonzero(value)

value ~= 0

eq, isnumeric, islogical

mustBeNonsparse(value)

value no es disperso.

issparse

mustBeSparse(value)

value es disperso.

issparse

mustBeReal(value)

value no tiene ninguna parte imaginaria.

isreal

mustBeInteger(value)

value == floor(value)

isreal, isfinite, floor, isnumeric, islogical

mustBeNonmissing(value)

value no puede contener valores faltantes.

anymissing

Comparación con otros valores

Nombre

Significado

Funciones llamadas sobre los valores de entrada

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

Pertenencia y rango

Nombre

Significado

Funciones llamadas sobre los valores de entrada

mustBeMember(value,S)

value es una coincidencia exacta para un miembro de S.

ismember

mustBeBetween(value,lower,upper)value debe estar dentro del rango.

allbetween

Tipos de datos

Nombre

Significado

Funciones llamadas sobre los valores de entrada

mustBeA(value,classnames)

value debe ser de una clase específica.

Usa relaciones de definición de clases

mustBeNumeric(value)

value debe ser numérico.

isnumeric

mustBeNumericOrLogical(value)

value debe ser numérico o lógico.

isnumeric, islogical

mustBeFloat(value)

value debe ser un arreglo de punto flotante.

isfloat

mustBeUnderlyingType(value,typename)

value debe tener un tipo subyacente especificado.

isUnderlyingType

Tamaño

Nombre

Significado

Funciones llamadas sobre los valores de entrada

mustBeNonempty(value)

value no está vacío.

isempty

mustBeScalarOrEmpty(value)value debe ser un escalar o estar vacío.

isscalar, isempty

mustBeVector(value)value debe ser un vector.

isvector

mustBeRow(value)value debe ser un vector fila de 1 por N.

isrow

mustBeColumn(value)value debe ser un vector columna de M por 1.

iscolumn

mustBeMatrix(value)value debe ser una matriz de M por N.

ismatrix

Texto

Nombre

Significado

Funciones llamadas sobre los valores de entrada

mustBeFile(path)

path debe hacer referencia a un archivo.

isfile

mustBeFolder(folder)path debe hacer referencia a una carpeta.

isfolder

mustBeNonzeroLengthText(value)

value debe ser un texto con longitud mayor que cero.

No se aplica

mustBeText(value)

value debe ser un arreglo de cadenas, un vector de caracteres o un arreglo de celdas de vectores de caracteres.

No se aplica

mustBeTextScalar(value)

value debe ser un único texto.

No se aplica
mustBeValidVariableName(varname)varname debe ser un nombre de variable válido.

isvarname

Definir las funciones de validación

Las funciones de validación son funciones de MATLAB que verifican los requisitos de los valores que se introducen en funciones o propiedades. Las funciones de validación determinan cuándo se deben generar errores y qué mensajes de error se deben mostrar.

Las funciones utilizadas para la validación tienen estos elementos de diseño:

  • Las funciones de validación no devuelven salidas ni modifican el estado del programa. Su único propósito es verificar la validez del valor de entrada.

  • Las funciones de validación deben aceptar como argumento el valor que se está validando. Si la función acepta más de un argumento, la primera entrada será el valor que se validará.

  • Las funciones de validación dependen únicamente de las entradas. No hay más valores disponibles para la función.

  • Las funciones de validación generan un error si la validación falla.

Crear su propia función de validación es útil cuando desea proporcionar una validación específica que no está disponible usando las funciones de validación de MATLAB. Puede crear una función de validación como una función local dentro del archivo de funciones o colocarla en la ruta de MATLAB. Para evitar una confluencia de mensajes de error, no utilice la validación de argumentos de función dentro de las funciones de validación definidas por el usuario.

Por ejemplo, la función mustBeRealUpperTriangular restringe la entrada a matrices triangulares superiores con valores reales. Las función de validación emplea las funciones istriu y 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

Si el argumento no es del tipo correcto, la función genera un error.

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

Consulte también

Temas