¿MATLAB tiene una función / operador que indique el tipo de una variable (similar al typeofoperador en JavaScript)?
188
Usa la classfunción
>> b = 2
b =
2
>> a = 'Hi'
a =
Hi
>> class(b)
ans =
double
>> class(a)
ans =
char
if ( string(class(b)) == 'double' ) fprintf(1, 'b is double'); endclass()la función es el equivalente detypeof()También puede usar
isa()para verificar si una variable es de un tipo particular. Si quieres ser aún más específico, puede utilizarischar(),isfloat(),iscell(), etc.fuente
Otra función relacionada es
whos. Enumerará todo tipo de información (dimensiones, tamaño de byte, tipo) para las variables en un espacio de trabajo dado.fuente
Tenga cuidado al usar la
isafunción. Esto será cierto si su objeto es del tipo especificado o una de sus subclases. Tiene que usarstrcmpcon laclassfunción para probar si el objeto es específicamente ese tipo y no una subclase.fuente
Como nadie lo mencionó, MATLAB también tiene la
metaclassfunción, que devuelve un objeto con varios bits de información sobre la entidad transferida. Estosmeta.classobjetos pueden ser útiles para pruebas de herencia (a través de operadores de comparación comunes).Por ejemplo:
Podemos ver que
class(someObj)es equivalente alNamecampo del resultado demetaclass(someObj).fuente
MATLAB - Comprobando el tipo de variables
Aquí está el código de ejemplo ejecutado en la ventana de comandos de MATLAB R2017a .
fuente