Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-06-17
年龄: 37
帖子: 5
声望力: 0 ![]() |
![]()
有个作业,要输出"自然对数底数 e= 2.7......."要求e保留小数点后20位,并且由matlab给出。
用f%最多只能输出16位,16位以后就都是0了 我现在用vpa可以输出20位小数,但没办法用sprintf输出,请教各位如何解决?:lovely: |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21 ![]() |
![]()
matlab中的fprintf(...)函数与C语言中的fprintf(...)完全类似,LZ的要求可以通过这个格式完成。
fid = fopen('***.txt','wt'); fprintf(fid,'自然对数底数 e= %1.20f\n',exp(1)); 详情请查看fprintf的函数说明。 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-06-17
年龄: 37
帖子: 5
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21 ![]() |
![]()
这个问题以前还真没注意过,原来matlab的浮点数只有16位小数。
既然这样的话,LZ的问题可以借助符号运算解决。 digits(21);%设置符号运算的精度,默认是32,这里按照LZ的意思设成21,其中一位是小数点前的 pretty(vpa(sym('exp(1)')));%在命令窗口中打印出e |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-06-17
年龄: 37
帖子: 5
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#6 |
高级会员
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21 ![]() |
![]()
用char(...)将sym类型转换成char,然后怎么干都行了。e.g.
sprintf('自然对数底数 e=%s',char(vpa(sym('exp(1)')))); |
![]() |
![]() |
![]() |
#7 |
初级会员
注册日期: 2008-06-17
年龄: 37
帖子: 5
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#8 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
:smile: 真强! 这都能行,就是复杂了一点点 ,还有个更简单的方法,我去找下,明天发上来!
|
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[资料]MATLAB_readme | xiaoduan259 | MATLAB论坛 | 2 | 2008-07-21 21:37 |
人脸识别分类器的设计问题 | balance1216 | MATLAB论坛 | 1 | 2008-07-21 09:33 |
[求助]如何用matlab画GENEMAPPER | lzh_lsh | MATLAB论坛 | 0 | 2008-07-08 12:00 |
神经网络第二次训练不收敛? | zlmjqjqjq | MATLAB论坛 | 0 | 2008-05-11 16:25 |
程序编写?怎样通过颜色深浅判断是否沉淀,求大家帮忙 | msw918 | MATLAB论坛 | 0 | 2008-04-24 10:22 |