如何通过不同的变量,引用工作区中的一些变量?

问题描述 投票:0回答:1

例如,当使用 parfor我发现的一个建议是,将我想要的变量设置为 "透明违反错误"。[] 而不是 clear -except var1, var2. 但我想一次把它们全部设置好,因为我只对保留几个感兴趣,其余的应该是清空设置成 [].

有什么办法吗?

matlab variables null
1个回答
1
投票

看来你是想 "empty" 的一些变量,其余的变量保持原样。

现在,你问到了如何在函数中引用这些变量。workspace对此,我想到了一件事,那就是用一个 cell array with the cells as those variable names.接下来,任务是清空这些变量,对此,我唯一印象深刻的是使用了? eval 该问题的评论中也有建议。我的理解是 eval 是不允许的,但我看不出有什么其他的办法,我很想看到别人提出一些其他的解决方案来逃避这个问题。接下来,为了使 eval 与所有选择的变量一起工作,我到了 cellfun.

一切都必须得到明确的代码 -

%// Variables for demo
var1 = 2;
var2 = 22;
a3 = 5;
a4 = [2 7];
a5 = [7 2.3 56];

c1 = {'var1','var2'} %// cell array of variable names to be "emptied"

%// Choose the variable names that are actually present in the workspace
allvars = who;
c1 = allvars(ismember(allvars,c1)) 

%// Empty the choosen variables
cellfun(@eval,strcat(c1,'=[];'))
© www.soinside.com 2019 - 2024. All rights reserved.