2

ベース ワークスペースに多くの変数があります。有効な名前を含む文字列のリストがあります。ベース ワークスペースに変数名var1, var2, var3, var4, , var5,var6が含まれておりvar7、文字列のリストがに等しいセル配列であるとします。var8var9var10

listParam = {'var4' 'var7' 'var10'};

listParamここで、含まれている文字列に対応する宣言された変数がベース ワークスペースにあるかどうかを確認したいと思います。ここで私がこれまでに行ったこと:

function [compareCellArrayList] = test(listParam)
S = evalin('base','whos'); % Looks for the variables in the base workspace
listWorkspaceVariable = cell(size(S)); % Pre-allocate
for ii = 1:length(S)
    listWorkspaceVariable{ii,1} = S(ii,1).name; % Gets the variable name of each variable
end
compareCellArrayList = cellfun(@(x) ismember(x, listParam), listWorkspaceVariable, 'UniformOutput', false);

上記のコードは正しく動作していますが、理解しやすいままに単純化できると感じているだけです。何か案は?

4

2 に答える 2