我有一个单元格数组,例如,
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'
我有一个单元格数组,例如,
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'
这里是答案:
eval(sprintf([cells{i} '=values;']))
;
如果您想在命令窗口中看到显示,您可以删除。
回答您的评论:
cells = {'a', 'b', 'c', 'd', 'e'};
values = 4;
i = 1;
eval(sprintf([cells{i} '=values;']))
这在我的计算机上运行良好,我没有收到任何警告或错误消息。
调用 eval 时,所有参数都必须是字符串,因此请先将单元格元素转换为字符串。
eval([ cellstr(cells{i}) ' = values;']))