我在这里做错了什么(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'
答案 0 :(得分:1)
如果你真的想让这个工作。 LHS
和RHS
都是字符串,而在您的代码中,它们被解释为变量。你想要:
eval([LHS ' = simplify(' RHS ')']);
LHS
和RHS
实际上是变量的名称,但是存储为字符串,因此您希望在将字符串构建为eval
时使用实际字符串。顺便说一句,我不知道你为什么要做你正在做的事情,但考虑不使用eval
。这是不好的做法。请参阅MathWorks的Loren Shure关于您为什么不应该使用它的帖子:http://blogs.mathworks.com/loren/2005/12/28/evading-eval/