如何将论证传递给' isa'在matlab中的功能

时间:2017-04-02 00:20:43

标签: matlab

我想检查一个变量是否存在于Matlab工作空间中,然后检查它的类。 所有的事情都是由m文件中的命令完成的。 在这种情况下,变量的名称是符号或字符,我如何使用isa函数。

a='x';
isa(a,'timeseries')

上述代码无效,但如果我改为

isa(x,'timeseries')

没关系,所以如何通过不直接传递其名称来检查对象的类? 谢谢!

2 个答案:

答案 0 :(得分:1)

您想使用功能existhttps://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

可以使用evalx传递给isa

isa(eval('x'), 'double')

然而,更好的方法是使用whos

显式获取变量的类
S = whos('x');
strcmp(S.class, 'double')
%   1