我在基础工作区中有很多变量。我有一个包含有效名称的字符串列表。所以我们假设基础工作区包含变量名var1
,var2
,var3
,var4
,var5
,var6
,{{1} },var7
,var8
,var9
和字符串列表是一个等于的单元格数组:
var10
现在,我想检查listParam = {'var4' 'var7' 'var10'};
中的字符串是否在基础工作区中具有相应的声明变量。这是我到目前为止所做的:
listParam
上面的代码工作正常,但只是我觉得它可以简化,同时仍然易于理解。有什么想法吗?
答案 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})