动态变量声明

时间:2014-02-17 14:30:55

标签: matlab variables declaration

假设我们已将数据加载到单元格数组中:

DATA={'foo',[1,5];'bar',[2,6]}

有没有办法如何在DATA中以第2列的内容声明由第1列命名的变量?

2 个答案:

答案 0 :(得分:5)

您可以使用eval

执行此操作
for ii = 1:size(DATA,1)
    eval( [DATA{ii,1}, ' = ', num2str( DATA{ii,2} )] );
end

但是,使用evalnot recommended

可以使用动态字段名称:

s = cell2struct( DATA(:,2), DATA(:,1), 2 );

答案 1 :(得分:1)

有一个assignin函数,它接受一个变量名并为其赋值一个特定的值:

for r = 1:size (DATA, 1)
  assignin ('caller', DATA{r,:});
end