Czy MATLAB ma funkcję / operator, który wskazuje typ zmiennej (podobny do typeof
operatora w JavaScript)?
188
Użyj class
funkcji
>> 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'); end
class()
funkcja jest równoważna ztypeof()
Możesz także użyć
isa()
do sprawdzenia, czy zmienna jest określonego typu. Jeśli chcesz być jeszcze bardziej szczegółowe, można użyćischar()
,isfloat()
,iscell()
, itd.źródło
Inną powiązaną funkcją jest
whos
. Wyświetli wszystkie informacje (wymiary, rozmiar bajtu, typ) dla zmiennych w danym obszarze roboczym.źródło
Zachowaj ostrożność podczas korzystania z tej
isa
funkcji. Będzie to prawdą, jeśli twój obiekt jest określonego typu lub jednej z jego podklas. Musisz użyćstrcmp
tejclass
funkcji do przetestowania, czy obiekt jest konkretnie tego typu, a nie podklasą.źródło
Ponieważ nikt o tym nie wspominał, MATLAB ma również
metaclass
funkcję, która zwraca obiekt z różnymi bitami informacji o przekazywanej jednostce.meta.class
Obiekty te mogą być przydatne w testach dziedziczenia (za pomocą popularnych operatorów porównania).Na przykład:
Widzimy, że
class(someObj)
jest to równoważneName
polu wynikumetaclass(someObj)
.źródło
MATLAB - Sprawdzanie typu zmiennych
Oto przykładowy kod wykonany w oknie poleceń MATLAB R2017a .
źródło