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 中的存储方式。

六、后记

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wendy_ya

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值