MATLAB:动态变量不直接在工作区中更新

时间:2015-03-18 10:42:23

标签: matlab variables dynamic

我遇到了一些问题。 我在循环中动态创建变量。

  for i=1:nbr
     assignin('base', ['x_',num2str(i)],0) 
  end

之后,我想将函数的结果放在这些变量中。但工作区底部的变量不会直接更新,所以我有一个错误"未定义的函数或变量"。我该如何解决我的问题?

for i=1:nbr 
      ['x_',num2str(i)]= fonction(input);
  end

提前谢谢

最好的关注

1 个答案:

答案 0 :(得分:1)

相反,请使用单元格数组:

x{i} = function(input);

然后将整个单元格数组返回给调用者,这样您就不需要使用assignin。整个函数体看起来像这样:

function x = myfunction(someinput)

for i=1:nbr
    x{i} = someotherfunction(input);
end
% Cell array x is returned from the function