我需要一个在我的工作区中选择特定变量的函数(使用通配符),将它们的值(=这些变量的值)赋给一个新变量, (这是我得到的部分)操纵它们,然后将这些新变量保存在旧变量名下。
varnames= who('*_small_*');
for n=length(varnames)
new = str2cell(varnames(n); %THIS STEP DOES NOT WORK.
%manipulation of those values;
filename=varnames(n);
save(filename,new);
end;
有人知道如何调用我需要的变量并提取它们的值吗?可能我的解决方案并不是最好的,所以请随意建议替代谁。
非常感谢!
答案 0 :(得分:0)
1.不要使用str2cell。而是使用大括号。
varname = varnames{n};
2. eval
函数不是最佳实践,但它可能是解决此问题的最简单方法。
eval(sprintf('new = %s;',varname)); %assign variable with varname to new
3.如果您只是覆盖工作区中的变量,请不要使用save。再次使用eval。
eval(sprintf('%s = new;',varname)); %assign 'new' value to varname