您当前的位置: 首页 >  matlab

wendy_ya

暂无认证

  • 2浏览

    0关注

    342博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MATLAB常见问题:小数保留有效数字位数相关问题/除法结果问题/数据显示格式设置

wendy_ya 发布时间:2020-09-12 19:11:19 ,浏览量:2

目录
  • 一、问题引出与求证
  • 二、问题查阅与解决
  • 三、MATLAB如何修改计算结果保留的有效数字
  • 四、拓展——数值显示
  • 五、总结
  • 六、后记

一、问题引出与求证

今天,利用MATLAB编写乘同余法产生随机数相关代码时,遇到一个问题: (下图仅截取部分代码片段)

a=6/256
b=6;
c=a*b

输出结果为: 在这里插入图片描述 再次运算:

d=0.0234*6

发现: 在这里插入图片描述 二者显然不相同。但是他们似乎是用相同的数0.0234和6进行相乘。结果为什么不相同呢?为了验证哪个计算出错,我又利用计算器进行了验证,结果非常amazing啊: 在这里插入图片描述 那第一个代码为什么会算出0.1406呢?我突然想到了一个点,是不是除法运算结果没有保留全部数值呢? 一做验证,果然如此。 在这里插入图片描述 而用0.0234375*6,结果保留四位有效数字果然是0.1406。

看来果然如此,MATLAB默认保留四位有效数字,其余位数省略,但是不消失。

比如:

a=6/256
b=0.0234
a==b

结果显示,果然a和b并不相等: 在这里插入图片描述

二、问题查阅与解决

经过大量资料查阅,只在这里找到部分答案: 在这里插入图片描述

“若为实数,则以保留小数点后4位的浮点型表示”

经过再次从网上查阅资料,发现可以修改结果保留的有效数字,详细步骤如三:

三、MATLAB如何修改计算结果保留的有效数字

Step1:主页–>预设 在这里插入图片描述

Step2:打开“命令行窗口”,找到“文本显示” 在这里插入图片描述 Step3:修改数值格式与数值显示 关于数值格式,共有12种,详见下表格: 在这里插入图片描述 显示格式只影响数值的显示方式,不影响它们在 MATLAB 中的存储方式。

参考自:MATLAB官方文档

当然,也可以使用format方法,链接如下: https://ww2.mathworks.cn/help/matlab/ref/format.html?s_tid=srchtitle

四、拓展——数值显示

数值显示有两个选项:

  • loose(默认) 默认情况下,MATLAB 会在命令行窗口输出中显示空行。如: 在这里插入图片描述

  • compact compact可以取消显示空行。如: 在这里插入图片描述 参考自:设置输出格式

五、总结

MATLAB中小数格式,默认以保留小数点后4位的浮点型表示,也可以进行手动设置; 显示格式只影响数值的显示方式,不影响它们在 MATLAB 中的存储方式。

六、后记

如果各位有什么更容易的解决办法,欢迎在评论中给出,感激不尽~

关注
打赏
1659256378
查看更多评论
立即登录/注册

微信扫码登录

0.0405s