matlab提示 The expression to the left of the equals sign is not a valid target for an assignment
问题描述:
matlab提示 The expression to the left of the equals sign is not a valid target for an assignment
for idx = 1:length(test{3})
eval([ test{1}{idx},' = ',num2str(test{3}(idx)),';']);
end
是哪儿不对呢
答
一个等号表示赋值,两个等号才表示判断是否相等.你这里相当于向test{1}{idx}赋值,所以报错了.eval这个是干啥的啊,为啥我只运行它后面的又可以运行呢?
eval是把一个字符串当成命令来执行的函数。
假设
test{1}{idx}='abc'
test{3}(idx)=2
那么
eval([ test{1}{idx}, ' = ', num2str(test{3}(idx)), ';']);
的作用就相当于语句
abc=2;
而如果你直接执行
test{1}{idx}=num2str(test{3}(idx));
相当于如下赋值语句
test{1}{idx}='2';