我有函数 f1 必须包含子函数,所以我不能使用另一个脚本:
function vars = f1()
a = 1;
b = 'hello';
c = {[1 2 3]};
currvars = whos; %all variable info
for k = 1:size(currvars, 1)
eval(['vars.(currvars(k).name) = ' currvars(k).name ';']);
end
end
我在脚本中调用该函数,然后使用 genvarname() 和 eval() 在脚本中创建变量:
vars = f1();
varnames = genvarname(fieldnames(vars));
for k = 1:size(varnames(:),1) %Creates vars with the struct's fieldnames.
eval([varnames{k} ' = vars.' varnames{k} ';']);
end
clearvars vars varnames
我想以某种方式将变量创建过程放入一个函数中,同时仅将所有变量读出给调用它的脚本,但我不想为输出分配一百个不同的变量名。有人对如何做到这一点有任何建议吗?