如何将工作区变量名称与字符串列表(单元格数组)进行比较?

时间:2013-08-29 15:40:48

标签: string list matlab function variables

我在基础工作区中有很多变量。我有一个包含有效名称的字符串列表。所以我们假设基础工作区包含变量名var1var2var3var4var5var6,{{1} },var7var8var9和字符串列表是一个等于的单元格数组:

var10

现在,我想检查listParam = {'var4' 'var7' 'var10'}; 中的字符串是否在基础工作区中具有相应的声明变量。这是我到目前为止所做的:

listParam

上面的代码工作正常,但只是我觉得它可以简化,同时仍然易于理解。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以用

替换第3行到第6行
listWorkspaceVariable = {S.name};

此外,您可以将ismember与两个单元格数组一起使用,以便可以重写最后一行

compareCellArrayList = ismember(listWorkspaceVariable, listParam);

所以它就像

function [listWorkspaceVariable] = test(listParam)
S = evalin('base','whos'); % Looks for the variables in the base workspace
listWorkspaceVariable = {S.name};
compareCellArrayList = ismember(listWorkspaceVariable, listParam);

顺便说一句,您的函数似乎没有返回compareCellArrayList

答案 1 :(得分:1)

doesexist = ismember(listParam,{S.name})