在MATLAB中更改循环内的变量名称

时间:2015-07-22 18:06:47

标签: matlab

我在这里做错了什么(MATLAB)?

我想获得一些如下所示的行:

syms B D M L
expr11 = -M-B*L*(B-M-D);
JQDFE11 = simplify(expr11);

使用以下循环:

for k=1:8
LHS=['JQDFE1',num2str(k)];
RHS=['expr1',num2str(k)];
eval('LHS = simplify(RHS)');
end

但我收到了错误:

Error using eval: Undefined function 'simplify' for input arguments of type 'char'

1 个答案:

答案 0 :(得分:1)

如果你真的想让这个工作。 LHSRHS都是字符串,而在您的代码中,它们被解释为变量。你想要:

eval([LHS ' = simplify(' RHS ')']);

LHSRHS实际上是变量的名称,但是存储为字符串,因此您希望在将字符串构建为eval时使用实际字符串。顺便说一句,我不知道你为什么要做你正在做的事情,但考虑使用eval。这是不好的做法。请参阅MathWorks的Loren Shure关于您为什么不应该使用它的帖子:http://blogs.mathworks.com/loren/2005/12/28/evading-eval/