6 ответов:
использовать
classфункции>> b = 2 b = 2 >> a = 'Hi' a = Hi >> class(b) ans = double >> class(a) ans = char
class()функция является эквивалентомtypeof()вы также можете использовать
isa()чтобы проверить, является ли переменная определенного типа. Если вы хотите быть еще более конкретным, вы можете использоватьischar(),isfloat(),iscell()и т. д.
другая связанная функция
whos. В нем будут перечислены все виды информации (размеры, Размер байта, тип) для переменных в данной рабочей области.>> a = [0 0 7]; >> whos a Name Size Bytes Class Attributes a 1x3 24 double >> b = 'James Bond'; >> whos b Name Size Bytes Class Attributes b 1x10 20 char
будьте осторожны при использовании . Это будет верно, если ваш объект указанного типа или один из его подклассов. Вы должны использовать
strcmpСclassфункция для проверки, является ли объект именно этим типом, а не подклассом.
поскольку никто не упоминал об этом, MATLAB также имеет
metaclassфункция, которая возвращает объект с различными битами информации о переданной сущности. Этиmeta.classобъекты могут быть полезны для тестов наследования (через общие операторы сравнения).например:
>> metaclass(magic(1)) ans = class with properties: Name: 'double' Description: '' DetailedDescription: '' Hidden: 0 Sealed: 0 Abstract: 0 Enumeration: 0 ConstructOnLoad: 0 HandleCompatible: 0 InferiorClasses: {0×1 cell} ContainingPackage: [0×0 meta.package] RestrictsSubclassing: 0 PropertyList: [0×1 meta.property] MethodList: [272×1 meta.method] EventList: [0×1 meta.event] EnumerationMemberList: [0×1 meta.EnumeratedValue] SuperclassList: [0×1 meta.class] >> ?containers.Map <= ?handle ans = logical 1мы это видим
class(someObj)эквивалентноNameполе результатаmetaclass(someObj).
MATLAB-проверка типа переменных
class () точно работает как Javascript typeof оператора.
чтобы получить более подробную информацию о переменных, которые можно использовать кто или whos ()
Comments