日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時(shí)間:2023/12/10 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB常见问题:小数保留有效数字位数相关问题/除法结果问题/数据显示格式设置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一、問題引出與求證
  • 二、問題查閱與解決
  • 三、MATLAB如何修改計(jì)算結(jié)果保留的有效數(shù)字
  • 四、拓展——數(shù)值顯示
  • 五、總結(jié)
  • 六、后記

一、問題引出與求證

今天,利用MATLAB編寫乘同余法產(chǎn)生隨機(jī)數(shù)相關(guān)代碼時(shí),遇到一個(gè)問題:
(下圖僅截取部分代碼片段)

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

輸出結(jié)果為:

再次運(yùn)算:

d=0.0234*6

發(fā)現(xiàn):

二者顯然不相同。但是他們似乎是用相同的數(shù)0.0234和6進(jìn)行相乘。結(jié)果為什么不相同呢?為了驗(yàn)證哪個(gè)計(jì)算出錯(cuò),我又利用計(jì)算器進(jìn)行了驗(yàn)證,結(jié)果非常amazing啊:

那第一個(gè)代碼為什么會(huì)算出0.1406呢?我突然想到了一個(gè)點(diǎn),是不是除法運(yùn)算結(jié)果沒有保留全部數(shù)值呢?
一做驗(yàn)證,果然如此。

而用0.0234375*6,結(jié)果保留四位有效數(shù)字果然是0.1406。

看來果然如此,MATLAB默認(rèn)保留四位有效數(shù)字,其余位數(shù)省略,但是不消失。

比如:

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

結(jié)果顯示,果然a和b并不相等:

二、問題查閱與解決

經(jīng)過大量資料查閱,只在這里找到部分答案:

“若為實(shí)數(shù),則以保留小數(shù)點(diǎn)后4位的浮點(diǎn)型表示”

經(jīng)過再次從網(wǎng)上查閱資料,發(fā)現(xiàn)可以修改結(jié)果保留的有效數(shù)字,詳細(xì)步驟如三:

三、MATLAB如何修改計(jì)算結(jié)果保留的有效數(shù)字

Step1:主頁–>預(yù)設(shè)

Step2:打開“命令行窗口”,找到“文本顯示”

Step3:修改數(shù)值格式與數(shù)值顯示
關(guān)于數(shù)值格式,共有12種,詳見下表格:

顯示格式只影響數(shù)值的顯示方式,不影響它們?cè)?MATLAB 中的存儲(chǔ)方式。

參考自:MATLAB官方文檔

當(dāng)然,也可以使用format方法,鏈接如下:
https://ww2.mathworks.cn/help/matlab/ref/format.html?s_tid=srchtitle

四、拓展——數(shù)值顯示

數(shù)值顯示有兩個(gè)選項(xiàng):

  • loose(默認(rèn))
    默認(rèn)情況下,MATLAB 會(huì)在命令行窗口輸出中顯示空行。如:

  • compact
    compact可以取消顯示空行。如:

    參考自:設(shè)置輸出格式

五、總結(jié)

MATLAB中小數(shù)格式,默認(rèn)以保留小數(shù)點(diǎn)后4位的浮點(diǎn)型表示,也可以進(jìn)行手動(dòng)設(shè)置;
顯示格式只影響數(shù)值的顯示方式,不影響它們?cè)?MATLAB 中的存儲(chǔ)方式。

六、后記

如果各位有什么更容易的解決辦法,歡迎在評(píng)論中給出,感激不盡~

總結(jié)

以上是生活随笔為你收集整理的MATLAB常见问题:小数保留有效数字位数相关问题/除法结果问题/数据显示格式设置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。