ベース ワークスペースに多くの変数があります。有効な名前を含む文字列のリストがあります。ベース ワークスペースに変数名var1
, var2
, var3
, var4
, , var5
,var6
が含まれておりvar7
、文字列のリストがに等しいセル配列であるとします。var8
var9
var10
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);
上記のコードは正しく動作していますが、理解しやすいままに単純化できると感じているだけです。何か案は?