chunshui2003 发表于 2010-5-31 20:35

如何让计算后的结果分数转换为小数

syms alpha                                                                                                            
Rg=6.24; L1=2.1; Ku=1.102; U0=4*pi*10^(-7); E0=18e-003;
f=50; t=3; theta=0.17*pi; phi=pi/6.22; p=40;               
Fsm=19210; Fjm=24214; A0=U0./(Ku*E0); sigma=Ku*E0; Wf=2*pi*f./p;
y1=(Rg.*L1.*A0/(2.*sigma^2))*(1+cos(2.*alpha)).*((Fsm.*cos(Wf.*t-p.*alpha)+Fjm*cos(Wf.*t-p.*alpha+theta+phi+pi./2)).^2)

输出结果
y1=
(19210*cos((15*pi)/2 - 40*alpha) + 24214*cos((259087*pi)/31100 - 40*alpha))^2*((2375479204083133*cos(2*alpha))/2251799813685248 + 2375479204083133/2251799813685248)

我不想要这么麻烦的结果,希望不是由分数表达的形式,而是小数或者整数,因为要对alpha进行积分,但这样的结果看起来太冗长了。
请问如何在matlab中设置满足我的要求。

[ 本帖最后由 ChaChing 于 2010-6-1 00:15 编辑 ]

messenger 发表于 2010-6-1 18:20

help vpa and double

ChaChing 发表于 2010-6-1 20:35

原帖由 messenger 于 2010-6-1 18:20 发表 http://www.chinavib.com/forum/images/common/back.gif
help vpa and double
LZ是这个意思吗?

chunshui2003 发表于 2010-6-2 09:47

谢谢楼上两位的意见。我差不多知道怎么做了,把我了解的在这里说一下:
就像messenger说的,要用到vpa命令,不过在这之前最好定义一下需要输出的有效数字位数,命令digits
比如
digits(8)
s=vpa(pi)
s=

3.1415927

如果仅仅输入
pi
ans =

    3.1416
输入5位有效数字,这和系统的设置有关,会用到format命令
比如 format short, pi

虽然之前问题已经解决了,但依然感谢messenger和ChaChing,CC已经帮助过我好几次了:@)
我觉得对于类似的问题,不仅仅是我一个人不了解,也希望我的回答对那些有同样问题的同学有所帮助。

ChaChing 发表于 2010-6-3 00:34

是LZ要的最好, 我还以为是要将y1的显示为成小数或者整数形式!
y1=(19210*cos((7.5*pi) - 40*alpha) + 24214*cos(8.3308*pi - 40*alpha))^2 ...:@L

chunshui2003 发表于 2010-6-4 09:36

呵呵,就是我要的效果,麻烦了。
页: [1]
查看完整版本: 如何让计算后的结果分数转换为小数