MATLAB 数值类型详解:存储、转换与范围查询
MATLAB 支持有符号/无符号整数、单/双精度浮点数等数值类型。默认以双精度浮点数存储,但可显式转换为整数或单精度类型。所有数值类型均支持基本数组与数学运算。
数值类型转换函数
| 函数 | 用途 |
|---|---|
| double | 转双精度浮点数 |
| single | 转单精度浮点数 |
| int8 | 转 8 位有符号整数 |
| int16 | 转 16 位有符号整数 |
| int32 | 转 32 位有符号整数 |
| int64 | 转 64 位有符号整数 |
| uint8 | 转 8 位无符号整数 |
| uint16 | 转 16 位无符号整数 |
| uint32 | 转 32 位无符号整数 |
| uint64 | 转 64 位无符号整数 |
示例:不同类型下的乘法运算
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.900 26.025 47.100 % single/double 保留小数 x = 38 23 45 % 整数类型截断取整
示例:转元胞数组
x = int32([5.32 3.47 6.28]) .* 7.5 x = num2cell(x)
x = { [1,1]=38 [1,2]=23 [1,3]=45 }
整数类型范围查询
intmax() 与 intmin() 返回指定整数类型的最大/最小值。
示例
str = 'The range for int8 is:\n\t%d to %d ';
sprintf(str, intmin('int8'), intmax('int8'))
% ... 依次查询 int16, int32, int64, uint8...uint64
输出(注意 int64/uint64 结果受版本影响):
int8: -128 到 127 int16: -32768 到 32767 int32: -2.147e9 到 2.147e9 int64: 0 到 0 (示例异常) uint8: 0 到 255 uint16: 0 到 65535 uint32: 0 到 -1 (示例异常) uint64: 0 到 1.844e19
浮点数类型范围查询
realmax() 与 realmin() 返回浮点数最大/最小正值,支持 'single' 与 'double' 参数。
示例
str = 'The range for single is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('single'), -realmin('single'), realmin('single'), realmax('single'))
str = 'The range for double is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('double'), -realmin('double'), realmin('double'), realmax('double'))
single: -3.40282e+38 到 -1.17549e-38 及 1.17549e-38 到 3.40282e+38 double: -1.79769e+308 到 -2.22507e-308 及 2.22507e-308 到 1.79769e+308
MATLAB
- 数值与数制:理解区别及其现实影响
- MATLAB 入门指南:矩阵实验室的核心能力与应用领域全景
- MATLAB 变量深度解析:矩阵本质、赋值、多重赋值、查看与清理、长赋值、格式控制、向量创建
- MATLAB 常用命令速查:会话管理、系统操作、输入输出、矩阵数组、绘图可视化
- MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表
- MATLAB 运算符大全:矩阵/数组算术、关系、逻辑、位运算、集合运算详解
- MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算
- MATLAB 多维数组与特殊数组完全指南
- MATLAB 冒号运算符详解:向量创建与高效迭代
- MATLAB 字符串完全指南:创建、拼接、元胞数组与常用函数
- MATLAB 函数详解:定义、工作区、输入输出与多种函数类型
- MATLAB 代数方程求解:solve、因式分解与化简