声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4937|回复: 5

[综合讨论] 如何让计算后的结果分数转换为小数

[复制链接]
发表于 2010-5-31 20:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-6-1 18:20 | 显示全部楼层
help vpa and double

评分

1

查看全部评分

发表于 2010-6-1 20:35 | 显示全部楼层
 楼主| 发表于 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已经帮助过我好几次了:@)
我觉得对于类似的问题,不仅仅是我一个人不了解,也希望我的回答对那些有同样问题的同学有所帮助。

评分

1

查看全部评分

发表于 2010-6-3 00:34 | 显示全部楼层
是LZ要的最好, 我还以为是要将y1的显示为成小数或者整数形式!
y1=(19210*cos((7.5*pi) - 40*alpha) + 24214*cos(8.3308*pi - 40*alpha))^2 ...:@L
 楼主| 发表于 2010-6-4 09:36 | 显示全部楼层
呵呵,就是我要的效果,麻烦了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-26 03:56 , Processed in 0.060978 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表