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.323.476.28]).*7.5x=double([5.323.476.28]).*7.5x=int8([5.323.476.28]).*7.5x=int16([5.323.476.28]).*7.5x=int32([5.323.476.28]).*7.5x=int64([5.323.476.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.323.476.28]).*7.5x=int64([5.323.476.28]).*7.5x=num2cell(x)
当运行该文件,它显示了以下结果:
x =
38 23 45
x =
38 23 45
x =
[38] [23] [45]
最小和最大整数
函数intmax() 和 intmin()返回的最大和最小的值,它可以表示所有类型的整数。
这两个功能整数数据类型作为参数,例如,intmax(int8) 或intmin(int64)最大值和最小值值,可以表示的整数数据类型并返回。
例子
下面的例子说明如何得到最小值和最大值的整数。创建一个脚本文件,它编写以下代码:
%displaying the smallestandlargestsignedinteger 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 smallestandlargestunsignedinteger 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 smallestandlargest 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 smallestandlargestdouble-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