HOWTO · MATLAB

Cómo comprobar el tipo de una variable en MATLAB

Aprende a consultar la clase de un valor, revisar las variables del espacio de trabajo y comprobar condiciones de tipo en MATLAB.

En esta página

Para consultar un valor de MATLAB, usa class() para obtener el nombre de su clase, whos para inspeccionar las variables del espacio de trabajo actual y predicados como isa(), ischar() o isnumeric() para obtener un resultado lógico que puedas usar como condición. Elige el método según necesites identificar un valor, revisar las variables del espacio de trabajo o dirigir una rama de tu código.

Comprobar la clase de una variable con class() en MATLAB

La función class() devuelve un vector de caracteres con el nombre de la clase de un valor. Por ejemplo, MATLAB interpreta el literal numérico 42 como double y el texto entre comillas simples 'Hello, MATLAB!' como un arreglo de caracteres de clase char. El siguiente script reúne la inspección y los predicados en un mismo flujo de trabajo.

numericVar = 42;
charVar = 'Hello, MATLAB!';

fprintf('numericVar class: %s\n', class(numericVar));
fprintf('charVar class: %s\n', class(charVar));
fprintf('numericVar is double: %d\n', isa(numericVar, 'double'));
fprintf('charVar is a character array: %d\n', ischar(charVar));
fprintf('numericVar is numeric: %d\n', isnumeric(numericVar));

if isa(numericVar, 'double')
    fprintf('Process numericVar as a double.\n');
end
numericVar class: double
charVar class: char
numericVar is double: 1
charVar is a character array: 1
numericVar is numeric: 1
Process numericVar as a double.

En MATLAB, usa class(value) cuando necesites el nombre exacto de la clase. La llamada informa sobre un solo valor y no enumera las variables del espacio de trabajo.

Inspeccionar los tipos de variables con el comando whos en MATLAB

El comando whos resume las variables del espacio de trabajo actual e incluye sus nombres, tamaños, cantidad de bytes, clases y atributos. Escribe whos para ver el inventario del espacio de trabajo, o usa whos numericVar para inspeccionar una variable concreta. La columna de clase permite revisar varios valores a la vez. Esta vista se limita a las variables visibles en el espacio de trabajo o ámbito actual, por lo que no puede inspeccionar una expresión arbitraria que aún no se haya asignado a una variable. Para consultar un único valor de ese tipo, usa class(expression).

Comprobar un tipo específico con isa() en MATLAB

Usa isa(value, 'typeName') cuando tu código necesite saber si un valor pertenece a una clase solicitada. Con numericVar = 42 y charVar = 'Hello, MATLAB!', isa(numericVar, 'double') y isa(charVar, 'char') devuelven valores lógicos verdaderos, mientras que isa(numericVar, 'single') devuelve falso. El resultado puede controlar directamente una instrucción if, como en el script anterior. isa() también reconoce las relaciones entre clases de MATLAB, así que puede devolver verdadero para una superclase o interfaz aunque ese nombre no sea la clase exacta del valor. Usa class(value) para obtener el nombre de la clase.

Comprobar arreglos de caracteres con ischar() en MATLAB

La función ischar() devuelve un valor lógico que indica si la entrada es un arreglo de caracteres. Para charVar = 'Hello, MATLAB!', ischar(charVar) devuelve verdadero; ischar(42) devuelve falso. Puedes usar if ischar(value) para elegir el tratamiento de texto cuando una función espera una entrada de tipo arreglo de caracteres. Los arreglos de cadenas de MATLAB, escritos entre comillas dobles, son un tipo distinto y no superan esta comprobación. Esta diferencia resulta útil cuando un programa acepta tanto vectores de caracteres como valores de tipo cadena.

Comprobar valores numéricos con isnumeric() en MATLAB

Usa isnumeric(value) para comprobar si un valor tiene un tipo numérico. En los ejemplos anteriores, isnumeric(numericVar) devuelve verdadero e isnumeric(charVar) devuelve falso. El predicado incluye clases numéricas de MATLAB como double, single y las clases enteras; no indica que el valor aceptado sea específicamente double. Los valores lógicos no se consideran numéricos para este predicado. Si necesitas una clase concreta, compruébala con isa(value, 'double') o consulta el nombre exacto con class(value).

Conclusión

Usa class() para obtener el nombre de clase de un valor, whos para revisar las variables del espacio de trabajo actual e isa(), ischar() o isnumeric() para obtener una condición lógica que pueda usar tu código. Cada herramienta responde a una pregunta distinta: inspecciona con class() o whos y elige el predicado que corresponda al requisito que tu programa debe aplicar.