Как вы относитесь к некоторым переменным в рабочей области, используя другую переменную?

Например, при использовании parfor он не позволяет вам очищать переменные внутри из-за ошибки "Ошибка прозрачности". Одно из предложений, которое я нашел, - это установить переменные, которые я хочу [] вместо clear -except var1, var2. Но я хотел бы, очевидно, установить их всех сразу, потому что я заинтересован только в сохранении нескольких, остальные должны быть очищены/установлены на [].

Есть идеи?

Благодарю!

1 ответ

Кажется, вы хотите "empty" некоторые из переменных, имена которых известны и сохраняют остальное как есть.

Теперь вы спросили, как обращаться к этим переменным в workspace, к чему я пришел, cell array with the cells as those variable names виду 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,'=[];'))

licensed under cc by-sa 3.0 with attribution.