MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
MathWorks招聘:MATLAB数字化市场专家(全职),中国 (北京)
MATLAB R2014b 正式发布
查看: 9089|回复: 9

[已答复] 很急!关于怎样将分数变成小数的问题

[复制链接]
发表于 2008-3-6 15:55:11 | 显示全部楼层 |阅读模式
在最近的编程中,经常遇到得到的结果是一个很长的分数,我想将其通过四舍五入变成一个小数,不知道应该用哪个命令,比如说,a=4967757600021511/162259276829213363391578010288128
发表于 2008-3-6 16:02:51 | 显示全部楼层
MATLAB初学者必读
>> format long
>> 3/5

ans =

   0.60000000000000

>>
 楼主| 发表于 2008-3-6 16:38:50 | 显示全部楼层
那如果里面还有一些变量,是不是就不行了,比如说
theta1 =

asin((4967757600021511/81129638414606681695789005144064+4967757600021511/162259276829213363391578010288128*sin(phi)*sin(psi)*3^(1/2)+4967757600021511/162259276829213363391578010288128*sin(phi)*cos(psi))/(cos(phi)^2+(1/2*sin(phi)*cos(psi)*3^(1/2)+1/2*sin(phi)*sin(psi))^2)^(1/2))-atan((1/2*sin(phi)*cos(psi)*3^(1/2)+1/2*sin(phi)*sin(psi))/cos(phi))
我想把分数部分变成小数,这样好看些,还有有的时候其中没有变量也是分数形式,MATLAB是不是默认的就是format short呀?
发表于 2008-3-6 16:46:57 | 显示全部楼层
表达式里,肯定是不能改变了。
 楼主| 发表于 2008-3-6 17:10:31 | 显示全部楼层
我在算网络权值的时候也是经常出现这种情况,而且里面没有表达式
比如说
yiW1_ij =

[   4279001894542615/4503599627370496,   7398577998079117/9007199254740992,   2106490494158701/2251799813685248]
[   1040955323604133/4503599627370496,  8011063623965805/18014398509481984,     516171311741047/562949953421312]
[   2732976033111339/4503599627370496,     346457611696917/562949953421312,  7390771005302551/18014398509481984]
[    547167616246949/1125899906842624,   3566567346657291/4503599627370496,   8049279388844017/9007199254740992]
[   8028107383647803/9007199254740992,   8302953103103165/9007199254740992,  4171508138470779/72057594037927936]
[   1716089506621205/2251799813685248,   6649179754310225/9007199254740992,  6356707155053623/18014398509481984]
[   4111495213517645/9007199254740992,  6350657141311965/36028797018963968,   3662176334247375/4503599627370496]
[     20833250209425/1125899906842624,  7308553399873393/18014398509481984, 5684652797686243/576460752303423488]
发表于 2008-3-6 17:30:36 | 显示全部楼层
format long

doulbe(yiW1_ij )
 楼主| 发表于 2008-3-6 19:44:11 | 显示全部楼层
成功了,非常感谢版主呀
发表于 2008-3-8 15:39:11 | 显示全部楼层
Just so easy
发表于 2011-12-17 00:53:16 | 显示全部楼层
:) :) :) :)
发表于 2014-11-8 21:29:56 | 显示全部楼层
在表达式中也是可以的,比如计算结果为:y=(1491*x)/4000 - 3443411798985830161/1125899906842624000, 可以使用vpa(y,4)实现只有显示有效数字的效果。
y=0.3728*x - 3.058.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

从课堂理论到动手实践:基于项目的学习实例演示

联系我们|版权保护|小黑屋|Archiver|手机版|MATLAB中文论坛 ( 苏ICP备08100737号 )  

GMT+8, 2014-11-22 07:40 , Processed in 0.600194 second(s), 38 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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