在Matlab中从单元格数组创建变量

时间:2013-08-23 17:28:47

标签: matlab eval cell cell-array

我有一组单元格,例如,

cells = {'a', 'b', 'c', d', 'e'};

位于1到5的for循环中。

我想根据循环索引创建一个从a到e的变量,如1到a,2到b ......

当我尝试(i是索引)时,

eval(cells{i}) = values;它给了我错误,

Undefined function or method 'eval' for input arguments of type 'a'

2 个答案:

答案 0 :(得分:1)

答案如下:

eval(sprintf([cells{i} '=values;']))

如果要在命令窗口中查看显示,可以删除;

回答你的评论:

cells = {'a', 'b', 'c', 'd', 'e'};
values = 4;
i = 1;
eval(sprintf([cells{i} '=values;']))

这在我的计算机上工作得非常好,我没有收到任何警告或错误消息。

答案 1 :(得分:0)

调用eval时,所有参数都必须是字符串,因此首先将单元格元素转换为字符串。

eval([ cellstr(cells{i}) ' = values;']))