Antworten:
Verwenden Sie die class
Funktion
>> b = 2
b =
2
>> a = 'Hi'
a =
Hi
>> class(b)
ans =
double
>> class(a)
ans =
char
Eine andere verwandte Funktion ist whos
. Es werden alle Arten von Informationen (Dimensionen, Bytegröße, Typ) für die Variablen in einem bestimmten Arbeitsbereich aufgelistet.
>> 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
Da es niemand erwähnt hat, hat MATLAB auch die metaclass
Funktion, die ein Objekt mit verschiedenen Informationen über die übergebene Entität zurückgibt. Diesemeta.class
Objekte können für Vererbungstests nützlich sein (über allgemeine Vergleichsoperatoren).
Beispielsweise:
>> 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
Wir können sehen, dass class(someObj)
dies dem Name
Feld des Ergebnisses von entspricht metaclass(someObj)
.
Klasse () funktioniert genau wie Javascript des typeof - Operator.
Um weitere Details zu Variablen zu erhalten, können Sie den Befehl whos oder die Funktion whos () verwenden.
Hier ist der Beispielcode, der im Befehlsfenster von MATLAB R2017a ausgeführt wird .
>> % Define a number
>> num = 67
num =
67
>> % Get type of variable num
>> class(num)
ans =
'double'
>> % Define character vector
>> myName = 'Rishikesh Agrawani'
myName =
'Rishikesh Agrwani'
>> % Check type of myName
>> class(myName)
ans =
'char'
>> % Define a cell array
>> cellArr = {'This ', 'is ', 'a ', 'big chance to learn ', 'MATLAB.'}; % Cell array
>>
>> class(cellArr)
ans =
'cell'
>> % Get more details including type
>> whos num
Name Size Bytes Class Attributes
num 1x1 8 double
>> whos myName
Name Size Bytes Class Attributes
myName 1x17 34 char
>> whos cellArr
Name Size Bytes Class Attributes
cellArr 1x5 634 cell
>> % Another way to use whos i.e using whos(char_vector)
>> whos('cellArr')
Name Size Bytes Class Attributes
cellArr 1x5 634 cell
>> whos('num')
Name Size Bytes Class Attributes
num 1x1 8 double
>> whos('myName')
Name Size Bytes Class Attributes
myName 1x17 34 char
>>
if ( string(class(b)) == 'double' ) fprintf(1, 'b is double'); end