第3章Matlab数据类型
到ans中
pi
圆周率π(= 3.1415926...)
inf
无穷大∞值,如1/0
eps
浮点运算的相对精度2^(-52)
realmax 最大的正浮点数,2^(1024)-1
realmin 最小的正浮点数,2^(-1022)
NaN或nan 不定量,如0/0或inf/inf
i或j
虚数单位
nargin 函数输入参数个数
第3章 Matlab 数据类型
主要内容
常量与变量 数值类型 逻辑类型 字符和字符串 元胞数组 结构体 函数句柄
2020/8/11
Application of MATLAB
1
3.1 常数与变量
3.1.1 MATLAB系统的特殊变量和常数
特殊变量
意义
ans
默认变量名,如果用户未定义变量名,matlab自动将结果保存
N = namelengthmax Matlab用字符i和j表示虚数单位,如果涉及
到复数计算,应避免把i和j用作变量名
isvarname 8th_column
2020/8/11
Application of MATLAB
3
3.1 常数与变量
3.1.3 创建变量
在MATLAB中创建变量不必声明变量的数据类型
把数值转换为一种整型数据类型时,matlab会将结果圆整 到最近的整型值
➢ 对于小数位取5的情况,如果数值为正,则向上圆整,否则向下圆 整
➢ 将大于整型数据类型最大值的数据转换为该整型时,matlab返回最 大值。如果数据值小于数据类型的最小值,则返回最小值
2020/8/11
Application of MATLAB
例创建一个A变量 A = 9
将变量的值赋给另一个变量前,必须确定该变量有值, 否则会返回错误。
例如
A=a
??? Undefined function or variable 'a'.
如果变量已经存在,给它赋值会替换它的当前值
2020/8/11
Application of MATLAB
4
3.1 常数与变量
3.1.4 变量的数据类型
变量数据类型
logical 逻辑型
char 字符/字
符串
numeric 数值型
cell 元胞数组
structure 结构体
Java classes Java类
function handle 函数句柄
int8, unit8, int16, uint16, int32, uint32, int64, uint64,
2020/8/11
Application of MATLAB
10
3.2 数值类型数据
3.2.2 单精度浮点型数据类型
single命令将数值或变量指定为single型 single型数据所占内存为double型的一半 将double型数据转换为single型时,matlab将该数据圆整
函数句柄
@sin
2020/8/11
说明
有符号和无符号的整数类型 大部分整数类型占用比浮点类型更少的内存空间
单精度浮点类型 和双精度浮点类型相比,占用内存空间更小,精度和 数值范围都比双精度浮点类型小
双精度浮点类型 Matlab中默认的数值类型
逻辑类型数据 1代表逻辑真,0代表逻辑假
字符串类型
元胞数组类型 数组元素可以是不同的数据类型 注:存储多个字符串最好用元胞数组类型
nargout 函数输出参数个数
lasterr 存放最新的错误信息
lastwarn 存放最新的警告信息
2020/8/11
Application of MATLAB
2
3.1 常数与变量
3.1.2 变量名
变量名由字母、数字和下划线组成; 变量名中英文字母大小写是有区别的; 变量名的最大长度是有规定的
不同版本的系统规定不同:19个字符、31或63个字符等 namelengthmax函数:系统规定长度 isvarname函数:变量名的合法性
int16
无符号16位整数
0~216-1
uint16
有符号32位整数
-231~231-1
int32
无符号32位整数
0~232-1
uint32
2020/8/11
Application of MATLAB
8
3.2 数值类型数据
3.2.1 整型数据类型
int8:将值或变量指定为整型
class函数:变量数据类型
单精度
双精度(包括复数、inf和NaN等)
2020/8/11
Application of MATLAB
7
3.2 数值类型数据
3.2.1 整型数据类型型
数值范围
转换函数
有符号8位整数
-128~127
int8
无符号8位整数
0~255
uint8
有符号16位整数
-215~215-1
结构体类型 类似于C语言,通过结构体中多个成员可以存储多种 类型的数据
函数句柄,相当于一个指针
Application of MATLAB
6
3.2 数值类型数据
数值类型包括有符号整数类型、无符号整数类型、单 精度浮点类型和双精度浮点类型
数值类型
整数类型 浮点类型
有符号、无符号8位 有符号、无符号16位 有符号、无符号32位 有符号、无符号64位
single
single(383.21)
double
383.21, 4+5.2i
logical
randn(3,4)>0.5
char
‘welcome!’
cell array
a{1,1}=’hello’; a{1,2}=325; a{1,3}=ones(3,2);
structure
=’join’; a.age=13; a.mat=rand(2,3);
9
3.2 数值类型数据
3.2.1 整型数据类型
两个相同类型的数据相加,结果仍为该整型
例如x=int16(5)+int16(9) 返回结果为x=14 class(x) 返回结果为ans=int16
如果结果大于数据类型的最大值或小于最小值,会返回最 大值或最小值
例如intwarning(‘on’) int16(50000) Warning: Out of range vonverted to intmin(‘int16’) or intmax(‘int16’) ans=32767
整数类型
2020/8/11
single 单精度 浮点型
double 双精度 浮点型
Matlab支持多种数据类型
所有类型数据都被存储在矩阵或数组中进行操作
Application of MATLAB
5
3.1 常数与变量
变量的数据类型
数据类型
示例
int8, uint8, int16, uint16(7500) uint16, int32, uint32