标题已经说明了这一点。给定三个变量:
d = 2;
s = sym(2);
v = vpa(2);
如何识别哪个变量属于哪种类型。显然,为了识别替身,我可以做isa( d, 'double' )
。但我所知道的所有识别符号变量的方法都不会区分vpa
和sym
,例如isa( s, 'sym' )
和isa( v, 'sym' )
都返回true
。
vpa(2)
是Luis Mendo在评论1,2中指出的符号。
您要查找的是isSymType
(在R2019a中介绍(。
isSymType(s,'integer')
isSymType(v,'vpareal')
通过利用vpa
是一个浮点数,可以在Matlab R2018b及更早版本中执行以下操作:
isAlways( s+10^sym(-100000)==s )
isAlways( v+10^sym(-100000)==v )
第一个返回false,第二个返回true。
不幸的是,这似乎不再适用于Matlab R2020a。