官术网_书友最值得收藏!

1.2 數值

1.2.1 數值類型概述

MATLAB數值類型包括整數型與浮點型。整數型包括int8、int16、int32、int64、uint8、uint16、uint32和uint64,浮點型包括single和double。數值類型見表1-1。

表1-1 數值類型

1.2.2 如何查看數值類型范圍

表1-2給出了MATLAB中常見的數值類型范圍查看函數。

表1-2 數值類型范圍查看函數

例2:查看double類型數據的范圍。

>>str=double的范圍精度為:從%g 到%g\n 和%g 到%g\n

>>fprintf(str,-realmax,-realmin,realmin,realmax)

其中fprintf函數的用法可查看2.2.12節。輸出為:double的范圍精度為:從-1.79769e+308到-2.22507e-308

和 2.22507e-308到1.79769e+308

例3:查看single類型數據的范圍。

>>str=single的范圍精度為:從%g到%g\n和%g到%g\n

>>fprintf(str,-realmax(single),-realmin(single),realmin(single),realmax(single))

single的范圍精度為:從-3.40282e+38到-1.17549e-38

和 1.17549e-38到3.40282e+38

例4:查看int32類型數據的范圍。

>>str=int32的范圍精度為:從%d 到%d\n

>>fprintf(str,intmin,intmax)

int32的范圍精度為:從-2147483648到2147483647

1.2.3 實例1:當心數值類型轉換中的溢出

MATLAB中的數值類型可以相互轉換,常見轉換函數見表1-3。

表1-3 數值類型轉換函數

例5:將10000轉換為int8類型。因為1000超過int8的范圍上限127,故數據會截斷為上限127,所以在實際程序中應注意避免數據溢出帶來的舍入風險。

>>int8(10000)

ans=

127

例6:將字符1轉換為int8類型。

錯誤轉換:

>>int8(1)%int8將字符1轉為其ASCII碼49

ans=

49

正確轉換方式為將字符1利用str2num函數轉換為數字1后再轉換為int8類型。

>>int8(str2num(1))

ans=

1

例7:將數字1轉換為字符1

>>num2str(1)

ans=

1

1.2.4 實例2:判斷與查看數值類型

語法:

isa(X,type)

如果X的類型與type相同則返回1,否則返回0。

例8:判斷與查看數值類型示例。

>>isa(1,int8

ans=

0

當然可以直接利用class函數查看數值類型。

>>class(int8(1))

ans=

int8

isa與class函數針對所有MATLAB數據類型均可執行,isa函數用法詳見2.2.7節。

主站蜘蛛池模板: 司法| 湖南省| 墨玉县| 环江| 南昌市| 阿鲁科尔沁旗| 五台县| 周宁县| 大悟县| 红原县| 金塔县| 秦皇岛市| 虎林市| 清流县| 新巴尔虎左旗| 彭阳县| 旺苍县| 桓仁| 疏勒县| 牟定县| 余姚市| 阿克陶县| 金川县| 永定县| 海宁市| 玛曲县| 桂阳县| 乌拉特前旗| 正蓝旗| 花莲市| 潢川县| 新营市| 宁化县| 曲靖市| 罗城| 姜堰市| 荔波县| 元氏县| 望奎县| 光泽县| 象山县|