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

1.2 數(shù)值

1.2.1 數(shù)值類型概述

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

表1-1 數(shù)值類型

1.2.2 如何查看數(shù)值類型范圍

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

表1-2 數(shù)值類型范圍查看函數(shù)

例2:查看double類型數(shù)據(jù)的范圍。

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

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

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

和 2.22507e-308到1.79769e+308

例3:查看single類型數(shù)據(jù)的范圍。

>>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類型數(shù)據(jù)的范圍。

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

>>fprintf(str,intmin,intmax)

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

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

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

表1-3 數(shù)值類型轉換函數(shù)

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

>>int8(10000)

ans=

127

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

錯誤轉換:

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

ans=

49

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

>>int8(str2num(1))

ans=

1

例7:將數(shù)字1轉換為字符1

>>num2str(1)

ans=

1

1.2.4 實例2:判斷與查看數(shù)值類型

語法:

isa(X,type)

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

例8:判斷與查看數(shù)值類型示例。

>>isa(1,int8

ans=

0

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

>>class(int8(1))

ans=

int8

isa與class函數(shù)針對所有MATLAB數(shù)據(jù)類型均可執(zhí)行,isa函數(shù)用法詳見2.2.7節(jié)。

主站蜘蛛池模板: 泸州市| 昌都县| 伊宁市| 南乐县| 县级市| 内乡县| 綦江县| 绥江县| 策勒县| 凤凰县| 章丘市| 安义县| 公安县| 海伦市| 乌恰县| 乌鲁木齐市| 且末县| 禹州市| 吉木萨尔县| 宁陵县| 麟游县| 永定县| 泗水县| 邓州市| 华亭县| 锡林浩特市| 延安市| 宝应县| 贺州市| 台中县| 桐庐县| 闸北区| 上林县| 慈利县| 铁岭市| 蒙城县| 滦南县| 南宁市| 临漳县| 常德市| 罗定市|