Имеет ли MATLAB функцию / оператор, который указывает тип переменной (аналогично typeof
оператору в JavaScript)?
188
Используйте class
функцию
>> 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()
функция является эквивалентомtypeof()
Вы также можете использовать,
isa()
чтобы проверить, является ли переменная определенного типа. Если вы хотите , чтобы быть еще более точным, вы можете использоватьischar()
,isfloat()
,iscell()
и т.д.источник
Еще одна связанная функция
whos
. В нем будут перечислены все виды информации (размеры, размер байта, тип) для переменных в данной рабочей области.источник
Будьте осторожны при использовании
isa
функции. Это будет верно, если ваш объект имеет указанный тип или один из его подклассов. Вы должны использоватьstrcmp
сclass
функцией для тестирования , если объект является конкретно этим типом и не подкласс.источник
Поскольку никто не упомянул об этом, в MATLAB также есть
metaclass
функция, которая возвращает объект с различными битами информации о переданном объекте. Этиmeta.class
объекты могут быть полезны для тестов наследования (через общие операторы сравнения).Например:
Мы можем видеть, что
class(someObj)
эквивалентноName
полю результатаmetaclass(someObj)
.источник
MATLAB - Проверка типа переменных
Вот пример кода, выполняемого в командном окне MATLAB R2017a .
источник