Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何通过不同的变量引用工作区中的一些变量?_Matlab_Variables_Null - Fatal编程技术网

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

Matlab 如何通过不同的变量引用工作区中的一些变量?,matlab,variables,null,Matlab,Variables,Null,例如,当使用parfor时,由于“透明度冲突错误”,它不允许清除内部变量。 我发现的一个建议是设置我想要[]的变量,而不是清除-除了var1、var2。但我显然想一次将它们全部设置好,因为我只想保留一些,其余的应该清除/设置为[] 有什么想法吗 谢谢 似乎您希望将一些名称已知的变量“清空”,并保持其余的不变 现在,您询问了如何在工作区中引用这些变量,我想到的一件事是使用单元格数组,单元格作为这些变量名。 接下来,任务是清空这些变量,唯一让我印象深刻的是使用eval,这也是对问题的评论中提出的。我

例如,当使用
parfor
时,由于“透明度冲突错误”,它不允许清除内部变量。 我发现的一个建议是设置我想要
[]
的变量,而不是
清除-除了var1、var2
。但我显然想一次将它们全部设置好,因为我只想保留一些,其余的应该清除/设置为
[]

有什么想法吗


谢谢

似乎您希望
将一些名称已知的变量“清空”
,并保持其余的不变

现在,您询问了如何在
工作区中引用这些变量,我想到的一件事是使用
单元格数组,单元格作为这些变量名。
接下来,任务是清空这些变量,唯一让我印象深刻的是使用
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,'=[];'))

你可以做的是,如果你确切地知道你的工作区中有哪些变量可用,你可以循环并运行一大堆
eval
语句,然后设置你想要
[]的变量
并保留您想要的变量不变。@rayryeng:eval也有相同的限制。@Calin-O:关于我们使用的变量类型(临时/切片/广播)?如果您不熟悉这些术语,请在问题中添加代码示例。+1。。。主要是因为这是我心中的想法。。。。这是我唯一的想法,即使人们不赞成。@rayryeng谢谢!是的,我没有看到关于这个案子的任何其他东西。让我们看看它是否也适用于OP!