Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
普通会员
注册日期: 2008-04-27
年龄: 39
帖子: 30
声望力: 18 ![]() |
![]()
程序:
a=3; x=solve('1+2+x+a=9') 结果: x=6-a 请问为什么不是3呢,也就是a在结果中为什么没被赋值? 请大家指点 谢谢!! |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19 ![]() |
![]()
solve中的是一个字符串表达式,用单引号括起来的,那么外面的任何变量都是赋不进此字符串的,则solve的结果也是以符号形式给出的,你可以看一下,你的结果的x的类型是sym型的,想把a=3赋进字符串有一个办法:
a=3; x=solve(['1+2+x+',num2str(a),'=9'],'x'); 结果是: x = 3 其中就是用num2str把a转换成字符了,达到赋值传递的目的。:redface: |
![]() |
![]() |
![]() |
#3 |
普通会员
注册日期: 2008-04-27
年龄: 39
帖子: 30
声望力: 18 ![]() |
![]()
十分感谢!!
|
![]() |
![]() |
![]() |
#4 |
普通会员
注册日期: 2007-08-07
帖子: 64
声望力: 20 ![]() |
![]()
a=3;
x=solve('1+2+x+a=9'); x=eval(x) |
![]() |
![]() |