Matlab中提供了多种数据类型,以供用户在不同的情况下使用。用户可以创建浮点型或者整数型矩阵和数组、字符和字符串、逻辑(true或者false)表达式、函数句柄、结构(structure)数组、元胞(cell)数组、Map容器、日期和时间、分类(categorical)数组、表格、时间序列等。在MATLAB中任何一种数据类型都以矩阵或者数组的形式来表示。这里说的矩阵或者数组,是指最小的0x0或N维任何大小的矩阵或者数组;
3.1 数值型
包括有符号和无符号整数、单精度和双精度浮点数。默认情况下是双精度浮点数;用户不可以更改默认的数据类型和精度,但可以选择用非默认的整数或者单精度浮点数来存储矩阵或者数组;整数数组和单精度数组比双精度数组能节省更多的内存空间,灵活运用可以更高效地利用内存。
所有数值型数组都支持基本的数组操作;比如数组的重构、使用数学运算符等。
数值型数组或矩阵比较简单。
3.2 逻辑型
创建逻辑型矩阵或者数组的函数主要有以下三个:
logical函数:可以将任意类型的数组转化为逻辑型。其中非零元素为true,零元素为false.
true 函数:产生全部元素为逻辑true的数组;
false函数:产生全部元素为逻辑false的数组;
例:利用函数创建逻辑型数组;
rand('state',0)
a=rand(4,3) %生成测试矩阵
a =
0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
复制代码
a(a<0.6)=0; %生成测试矩阵
a =
0.9501 0.8913 0.8214
0 0.7621 0
0.6068 0 0.6154
0 0 0.7919
复制代码
b=logical(a) %计算逻辑型矩阵b
b =
1 1 1
0 1 0
1 0 1
0 0 1
复制代码
c=true(size(a)) %生成全为true的矩阵
c =
1 1 1
1 1 1
1 1 1
1 1 1
复制代码
d=false([size(a),2]) %生成全为false的矩阵
d(:,:,1) =
0 0 0
0 0 0
0 0 0
0 0 0
复制代码
d(:,:,2) =
0 0 0
0 0 0
0 0 0
0 0 0
复制代码
whos %查看现有的变量与数据类型
Name Size Bytes Class Attributes
A 3x5 120 double
a 4x3 96 double
ans 1x2 16 double
b 4x3 12 logical
c 4x3 12 logical
d 4x3x2 24 logical
逻辑型数组中每一个元素仅占用一字节的内存空间。所以,尽管矩阵b和矩阵a的大小一样,但是在内存的占用上有相当大的差距,并且属于不同的数据类型;
3.2.2 返回逻辑结果的函数
下面的逻辑运算符或函数将会返回逻辑型的true或者false.
&& 具有短路作用的逻