MATLAB數字
MATLAB 支持各種數字類,包括符號和無符號的整數及單精度和雙精度浮點數。默認情況下,MATLAB 存儲所有數值為雙精度浮點數。
可以選擇存儲任何數字或數字為整數或單精度數字陣列。
所有的數字類型支持基本的數組運算和數學運算。
各種數字數據類型的轉換
MATLAB提供各種數字數據類型轉換為以下功能:
函數 | 目的 |
---|---|
double | Converts to double precision number |
single | Converts to single precision number |
int8 | Converts to 8-bit signed integer |
int16 | Converts to 16-bit signed integer |
int32 | Converts to 32-bit signed integer |
int64 | Converts to 64-bit signed integer |
uint8 | Converts to 8-bit unsigned integer |
uint16 | Converts to 16-bit unsigned integer |
uint32 | Converts to 32-bit unsigned integer |
uint64 | Converts to 64-bit unsigned integer |
例子
創建一個腳本文件,並鍵入下麵的代碼:
x = single([5.32 3.47 6.28]) .* 7.5 x = double([5.32 3.47 6.28]) .* 7.5 x = int8([5.32 3.47 6.28]) .* 7.5 x = int16([5.32 3.47 6.28]) .* 7.5 x = int32([5.32 3.47 6.28]) .* 7.5 x = int64([5.32 3.47 6.28]) .* 7.5
當運行該文件,它顯示了以下結果:
x = 39.9000 26.0250 47.1000 x = 39.9000 26.0250 47.1000 x = 38 23 45 x = 38 23 45 x = 38 23 45 x = 38 23 45
例子
讓我們擴展前麵的例子多一點。創建一個腳本文件,並鍵入下麵的代碼:
x = int32([5.32 3.47 6.28]) .* 7.5 x = int64([5.32 3.47 6.28]) .* 7.5 x = num2cell(x)
當運行該文件,它顯示了以下結果:
x = 38 23 45 x = 38 23 45 x = [38] [23] [45]
最小和最大整數
函數intmax() 和 intmin()返回的最大和最小的值,它可以表示所有類型的整數。
這兩個功能整數數據類型作為參數,例如,intmax(int8) 或intmin(int64)最大值和最小值值,可以表示的整數數據類型並返回。
例子
下麵的例子說明如何得到最小值和最大值的整數。創建一個腳本文件,它編寫以下代碼:
% displaying the smallest and largest signed integer data str = 'The range for int8 is: %d to %d '; sprintf(str, intmin('int8'), intmax('int8')) str = 'The range for int16 is: %d to %d '; sprintf(str, intmin('int16'), intmax('int16')) str = 'The range for int32 is: %d to %d '; sprintf(str, intmin('int32'), intmax('int32')) str = 'The range for int64 is: %d to %d '; sprintf(str, intmin('int64'), intmax('int64')) % displaying the smallest and largest unsigned integer data str = 'The range for uint8 is: %d to %d '; sprintf(str, intmin('uint8'), intmax('uint8')) str = 'The range for uint16 is: %d to %d '; sprintf(str, intmin('uint16'), intmax('uint16')) str = 'The range for uint32 is: %d to %d '; sprintf(str, intmin('uint32'), intmax('uint32')) str = 'The range for uint64 is: %d to %d '; sprintf(str, intmin('uint64'), intmax('uint64'))
當運行該文件,它顯示了以下結果:
ans = The range for int8 is: -128 to 127 ans = The range for int16 is: -32768 to 32767 ans = The range for int32 is: -2147483648 to 2147483647 ans = The range for int64 is: -9223372036854775808 to 9223372036854775807 ans = The range for uint8 is: 0 to 255 ans = The range for uint16 is: 0 to 65535 ans = The range for uint32 is: 0 to 4294967295 ans = The range for uint64 is: 0 to 1.844674e+19
最小和最大浮點數
這函數realmax() 和realmin() 返回的最大值和最小值的值,可以表示為浮點數。
這兩個函數調用時的參數'單',返回的最大值和最小值值,可以代表單精度數據類型以及何時被稱為'雙'的參數,返回的最大值和最小值值,可以表示雙精度數據類型。
實例
下麵的例子說明如何獲得最大和最小的浮點數。創建一個腳本文件,它編寫以下代碼:
% displaying the smallest and largest single-precision % floating yiibai number str = 'The range for single is: %g to %g and %g to %g'; sprintf(str, -realmax('single'), -realmin('single'), ... realmin('single'), realmax('single')) % displaying the smallest and largest double-precision % floating yiibai number str = 'The range for double is: %g to %g and %g to %g'; sprintf(str, -realmax('double'), -realmin('double'), ... realmin('double'), realmax('double'))
當運行該文件,它會顯示以下結果:
ans = The range for single is: -3.40282e+38 to -1.17549e-38 and 1.17549e-38 to 3.40282e+38 ans = The range for double is: -1.79769e+308 to -2.22507e-308 and 2.22507e-308 to 1.79769e+308