我想检查一个变量是否存在于Matlab工作空间中,然后检查它的类。 所有的事情都是由m文件中的命令完成的。 在这种情况下,变量的名称是符号或字符,我如何使用isa函数。
a='x';
isa(a,'timeseries')
上述代码无效,但如果我改为
isa(x,'timeseries')
没关系,所以如何通过不直接传递其名称来检查对象的类? 谢谢!
答案 0 :(得分:1)
您想使用功能exist
:https://www.mathworks.com/help/matlab/ref/exist.html
if exist('x','var')
class(x)
end
将带有变量名称的字符串传递给exist
。建立后,您可以在isa
来电中使用它。
答案 1 :(得分:0)
你不能这样使用isa
因为当你将一个字符串作为第一个参数传递给isa
时,该字符串的类是char
isa('x', 'double')
% 0
isa('x', 'char')
% 1
您可以使用eval
将x
的值传递给isa
isa(eval('x'), 'double')
然而,更好的方法是使用whos
S = whos('x');
strcmp(S.class, 'double')
% 1