登录论坛

查看完整版本 : [求助]程序:a=3; x=solve('1+2+x+a=9') 结果: x=6-a


gkyingkyin
2008-10-04, 20:58
程序:
a=3;
x=solve('1+2+x+a=9')
结果:
x=6-a
请问为什么不是3呢,也就是a在结果中为什么没被赋值?
请大家指点
谢谢!!

meteora1005
2008-10-04, 21:46
solve中的是一个字符串表达式,用单引号括起来的,那么外面的任何变量都是赋不进此字符串的,则solve的结果也是以符号形式给出的,你可以看一下,你的结果的x的类型是sym型的,想把a=3赋进字符串有一个办法:
a=3;
x=solve(['1+2+x+',num2str(a),'=9'],'x');
结果是:
x =
3
其中就是用num2str把a转换成字符了,达到赋值传递的目的。:redface:

gkyingkyin
2008-10-05, 14:56
十分感谢!!

xiezhh
2008-10-05, 21:27
a=3;
x=solve('1+2+x+a=9');
x=eval(x)