Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-04, 20:58   #1
gkyingkyin
普通会员
 
注册日期: 2008-04-27
年龄: 39
帖子: 30
声望力: 18
gkyingkyin 正向着好的方向发展
默认 [求助]程序:a=3; x=solve('1+2+x+a=9') 结果: x=6-a

程序:
a=3;
x=solve('1+2+x+a=9')
结果:
x=6-a
请问为什么不是3呢,也就是a在结果中为什么没被赋值?
请大家指点
谢谢!!
gkyingkyin 当前离线   回复时引用此帖
旧 2008-10-04, 21:46   #2
meteora1005
高级会员
 
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19
meteora1005 正向着好的方向发展
默认 回复: 新手求助!

solve中的是一个字符串表达式,用单引号括起来的,那么外面的任何变量都是赋不进此字符串的,则solve的结果也是以符号形式给出的,你可以看一下,你的结果的x的类型是sym型的,想把a=3赋进字符串有一个办法:
a=3;
x=solve(['1+2+x+',num2str(a),'=9'],'x');
结果是:
x =
3
其中就是用num2str把a转换成字符了,达到赋值传递的目的。:redface:
meteora1005 当前离线   回复时引用此帖
旧 2008-10-05, 14:56   #3
gkyingkyin
普通会员
 
注册日期: 2008-04-27
年龄: 39
帖子: 30
声望力: 18
gkyingkyin 正向着好的方向发展
默认 回复: 新手求助!

十分感谢!!
gkyingkyin 当前离线   回复时引用此帖
旧 2008-10-05, 21:27   #4
xiezhh
普通会员
 
注册日期: 2007-08-07
帖子: 64
声望力: 20
xiezhh 是一个将要出名的人
默认 回复: 新手求助!

a=3;
x=solve('1+2+x+a=9');
x=eval(x)
xiezhh 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 07:40


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.