0

我有一个单元格数组,例如,

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

它在 1 到 5 的 for 循环内。

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

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

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

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

4

2 回答 2

1

这里是答案:

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

;如果您想在命令窗口中看到显示,您可以删除。

回答您的评论:

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

这在我的计算机上运行良好,我没有收到任何警告或错误消息。

于 2013-08-23T18:02:24.230 回答
0

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

eval([ cellstr(cells{i}) ' = values;']))
于 2013-08-24T21:18:20.870 回答