在Matlab R2013a中使用eval进行动态变量赋值

时间:2013-10-31 18:38:19

标签: matlab variables dynamic eval assign

我正在尝试使用Matlab中的eval为动态变量赋值。我正在使用Matlab R2013a。我可以很容易地做旧版本,但不是在R2013a。是的,我知道使用eval等的陷阱。我也试过assignin,但那不成功。

Bins = [10 100 20]; 
Cols = numel(Bins);

for i = 1:Cols 
    eval(['Var' num2str(i) ' = Cols+i']);
end

错误 - >尝试将“Var”添加到静态工作区。

所需的输出

    Var1 = 4 
    Var2 = 5
    Var3 = 6

1 个答案:

答案 0 :(得分:2)

嵌套函数中的代码是什么?请参阅The MathWorks中的this article

如果必须以这种方式创建变量(有更多更好的选项),那么您需要在main函数中执行它或使用子函数。有关不同类型的函数以及如何使用它们的详细信息,请参阅此article on sharing data between workspaces