我有一组单元格,例如,
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'
答案 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;']))