求教:怎么将方程解出的数值赋值给另外一个变量
怎么将方程解出的数值赋值给另外一个变量?例如:求解方程x^2+3*x+1=0
求解出两个解为:
ans =
1/2*5^(1/2)-3/2
-3/2-1/2*5^(1/2)
变换为数值形式:
str2num1/2*5^(1/2)-3/2
str2num -3/2-1/2*5^(1/2)
把这个两个字符串的数值形式赋值给变量x1和x2
现在的问题是,怎么样编辑好多句程序,实现自动赋值呢?
简单的小问题,望大家不吝赐教。
回复 楼主 xueeux 的帖子
不很确定LZ要的aa=solve('x^2+3*x+1=0')
bb=double(aa) 对对,就是这样的,谢谢chaching,我一直用str2num命令来着,郁闷
另外,在上面的式中bb是两个获多个值,怎么取其中的一个呢?
这里得到的bb是一个是一个数组吗?
回复 板凳 xueeux 的帖子
数组是array吗? 抱歉有些术语, 我还不熟! bb is double array取其中的第二个 bb(2), 这个很基础! :@L 不好意思,本人matlab菜鸟,多谢指教。 我又试了一下,我计算的程序中,解出的两个字符串的数值是:
aaa =
22395957575131475102842832156547350528/522134283751219306779950651895245625+2251799813685248/522134283751219306779950651895245625*82223709700354724578836288622481514469054321^(1/2)
22395957575131475102842832156547350528/522134283751219306779950651895245625-2251799813685248/522134283751219306779950651895245625*82223709700354724578836288622481514469054321^(1/2)
当我用double命令时,得到
97 97 97
而用str2num才得到正确的数值,分别得到
81.9993
3.7869
这个为什么呢?
回复 6楼 xueeux 的帖子
对symbolic个人也是菜鸟!LZ前面部分的程序没给, 我没法试! 我直接用
double aaa 就得到97,97,97的结果
用double (aaa)就得到正确的结果了
不知道咋回事
:@L
回复 8楼 xueeux 的帖子
LZ刚好试到一些需注意的地方, 我试着说明!aa=solve('x^2+3*x+1=0');
若aa为sym object,则bb=double(aa)为sym转换函数
若下double aa它的意思等同double('aa'), 为将aa字元转变为ascii码(若我没记错!)
LZ可以逐行试试
double aa
double bb
double cc
[ 本帖最后由 ChaChing 于 2009-1-9 08:07 编辑 ]
回复 8楼 xueeux 的帖子
LZ是不是把C语言和Matlab混淆啦doc double
回复 8楼 xueeux 的帖子
看看希望对LZ有用http://forum.vibunion.com/forum/viewthread.php?tid=75501&extra=&frombbs=1 看了chaching的帖子,讲的非常好,谢谢
建议chaching把matlab里的问题解决方法出本书,肯定热卖:lol
回复 12楼 xueeux 的帖子
振动论坛有关于Matlab的FAQ
页:
[1]