Matlab中如何区分vpa和sym
How to differentiate between vpa and sym in Matlab
标题已经说明了。给定三个变量:
d = 2;
s = sym(2);
v = vpa(2);
如何识别哪个变量属于哪种类型。显然,要识别双打,我可以做到 isa( d, 'double' )
。但是我知道的所有识别符号变量的方法都不区分 vpa
和 sym
,例如isa( s, 'sym' )
和 isa( v, 'sym' )
都 return true
.
vpa(2)
是 Luis Mendo in the comments , 指出的符号。
您要查找的是 isSymType
(在 R2019a 中引入)。
isSymType(s,'integer')
isSymType(v,'vpareal')
通过利用 vpa
是一个浮点数,可以在 Matlab R2018b 及更早版本中执行以下操作:
isAlways( s+10^sym(-100000)==s )
isAlways( v+10^sym(-100000)==v )
第一个returns错误,第二个正确。
不幸的是,这似乎不再适用于 Matlab R2020a。
标题已经说明了。给定三个变量:
d = 2;
s = sym(2);
v = vpa(2);
如何识别哪个变量属于哪种类型。显然,要识别双打,我可以做到 isa( d, 'double' )
。但是我知道的所有识别符号变量的方法都不区分 vpa
和 sym
,例如isa( s, 'sym' )
和 isa( v, 'sym' )
都 return true
.
vpa(2)
是 Luis Mendo in the comments
您要查找的是 isSymType
(在 R2019a 中引入)。
isSymType(s,'integer')
isSymType(v,'vpareal')
通过利用 vpa
是一个浮点数,可以在 Matlab R2018b 及更早版本中执行以下操作:
isAlways( s+10^sym(-100000)==s )
isAlways( v+10^sym(-100000)==v )
第一个returns错误,第二个正确。
不幸的是,这似乎不再适用于 Matlab R2020a。