如何获得在MATLAB中的variables的types?

MATLAB有一个函数/运算符,指示variables的types(类似于JavaScript中的typeof运算符)?

使用classfunction

 >> b = 2 b = 2 >> a = 'Hi' a = Hi >> class(b) ans = double >> class(a) ans = char 

class()函数相当于typeof()

您也可以使用isa()来检查variables是否是特定的types。 如果你想更具体一些,你可以使用ischar()isfloat()iscell()等。

另一个相关的function是whos 。 它将列出给定工作空间中variables的各种信息(维度,字节大小,types)。

 >> 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 

使用isa函数时要小心。 如果你的对象是指定的types它的一个子类,这将是真实的。 您必须使用class函数的strcmp来testing对象是否是特定的types而不是子类。

由于没有人提到它,MATLAB还具有metaclass函数,它返回一个对象,其中包含有关传入实体的各种信息。 这些meta.class对象可以用于inheritance的testing(通过通用的比较运算符)。

例如:

 >> 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)等价于metaclass(someObj)结果的Name字段。

在Matlab中,您可以使用class函数接收variables的types。

例如对于一个string的variables

 x = 'hello world'; class(x) 

会返回

 ans = char 

您可以看到这里使用的类函数的示例: https : //www.youtube.com/watch?v = xZ0vnjrRPLA