回覆列表
  • 1 # 卩丬My兲偌哊情er865

    本文介紹了整數型、浮點數型、字元型之間的操作,整數型只能與相同的整數型或者雙精度浮點數型資料進行運算。雙精度浮點數與整數型運算得到整數型,雙精度浮點數與單精度浮點數運算得到單精度浮點數型,單精度浮點數型與字元型運算得到單精度浮點數型,雙精度浮點數型與字元型運算得到雙精度浮點數型。eps函式可以獲取單/雙精度浮點數與真實數之間的間隙。

    第一,啟動MATLAB,在命令列視窗(Command Window)輸入如下程式碼:

    a=uint16(10),b=int32(20),c=int64(30)

    d=single(1.5),e=3.5,f="good"

    其中,d,e,f另起一行輸入是按Shift+Enter進行換行。

    第二,輸入完a,b,c, d,e,f後按回車(Enter),在命令列視窗會列出相應的數值。輸入whos按回車,可以得到如下資料型別列表。

    Name Size Bytes Class Attributes

    a 1x1 2 uint16

    b 1x1 4 int32

    c 1x1 8 int64

    d 1x1 4 single

    e 1x1 8 double

    f 1x4 8 char

    其中a屬於無符號16位整數,b屬於有符號32位整數,c屬於有符號64位整數,d屬於單精度浮點數型別,e屬於雙精度浮點數型別,f屬於字元型。

    第三,在命令列視窗輸入a*b,a*c,a*d,然後按回車,會提示如下錯誤:

    錯誤使用 .*

    整數只能與相同類的整數或標量雙精度值組合使用。

    第四,既然整數只能與相同類的整數或標量雙精度值組合使用,那麼就輸入a*a,a*e,然後按回車,得到如下結果。

    ans =100

    ans =35

    第五,接著在命令列視窗輸入d*e,d*f,e*f按回車,得到如下結果:

    ans =5.2500ans =154.5000 166.5000 166.5000 150.0000ans =360.5000 388.5000 388.5000 350.0000

    這說明單精度浮點數與雙精度浮點數之間,單精度浮點數與字元型之間,雙精度浮點數與字元型之間是可以計算的。

    第六,由於單精度浮點數與雙精度浮點數都是用有限位數儲存指數部分和小數部分,表示的數值是有限且離散。eps函式可以獲取實際數值與浮點數之間的間隙。輸入eps(d),eps(e)按回車得到如下結果。

    ans =1.1921e-07

    ans =4.4409e-16

    因為d是單精度,e是雙精度,可見雙精度浮點型數值與實際值間隙更小。

  • 中秋節和大豐收的關聯?
  • 我的孩子快三歲了。一哭就吐,不哭就沒有事,是怎麼了,病嗎?