Câu trả lời:
Sử dụng class
chức năng
>> b = 2
b =
2
>> a = 'Hi'
a =
Hi
>> class(b)
ans =
double
>> class(a)
ans =
char
Một chức năng liên quan khác là whos
. Nó sẽ liệt kê tất cả các loại thông tin (kích thước, kích thước byte, loại) cho các biến trong một không gian làm việc nhất định.
>> 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
Vì không ai đề cập đến nó, MATLAB cũng có metaclass
chức năng trả về một đối tượng có nhiều thông tin khác nhau về thực thể được truyền vào. Các meta.class
đối tượng này có thể hữu ích cho các thử nghiệm kế thừa (thông qua các toán tử so sánh phổ biến).
Ví dụ:
>> 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
Chúng ta có thể thấy rằng class(someObj)
tương đương với Name
lĩnh vực kết quả metaclass(someObj)
.
class () hoạt động chính xác như toán tử typeof của Javascript .
Để biết thêm chi tiết về các biến, bạn có thể sử dụng hàm whos hoặc hàm whos () .
Dưới đây là mã ví dụ được thực thi trên Cửa sổ lệnh của MATLAB R2017a .
>> % 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