前言
MATLAB 中的数据类型主要包括数值类型、 逻辑类型、 字符串、函数句柄、 结构体和单元数组类型。 这6种基本的数据类型都是按照数组形式存储和操作的。
一、逻辑类型
逻辑类型的数据是指布尔类型的数据及数据之间的逻辑关系。 除了传统的数学运算, MATLAB还支持关系和逻辑运
算。 这些运算的目的是提供求解真/假命题的答案。
作为所有关系和逻辑表达式的输入, MATLAB 把任何非零数值当作真, 把零当作假。 所有关系和逻辑表达式的输出:
对于真, 输出为1; 对于假, 输出为0。逻辑类型数据进行运算时需要用到关系操作符和逻辑运算符。
MATLAB关系操作符表:
关系操作符 | 说明 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
= | 等于 |
~= | 不等于 |
MATLAB关系操作符能用来比较两个同样大小的数组, 或用来比较一个数组和一个标量。 在后一种情况中, 标量和数组中的每一个元素相比较, 结果与数组大小一样。
实例1:判断两个数组之间的元素是否相等。
在命令行窗口中输入:
>> A=1:9,B=10-A
>> TruerFasle=(A==B)
输出结果:
A =
1 2 3 4 5 6 7 8 9
B =
9 8 7 6 5 4 3 2 1
TruerFasle =
1×9 logical 数组
0 0 0 0 1 0 0 0 0
TruerFasle 为判断两个变量是否相等,这个实例中判断A、B两个数各个元素是否相等,相同为1,不同为0。
注意:“ =” 和“ = =” 在MATLAB中的意义是不同的。 “ = =” 是对等号两边的两个变量进行比较, 当它们相等时返回1, 不相等时返回0;而“ =” 则是被用来将运算的结果赋给一个变量。
逻辑运算符提供了一种组合或否定关系表达式,如下表所示:
逻辑运算符 | 说明 |
---|---|
& | 与 |
1 | 或 |
~ | 非 |
实例2:判断两个数组之间的元素是否相等。
在命令行窗口中输入:
>> A=1:9;
>> TruerFasle=(A>2)&(A<6) %判断A中元素是否在2~6之间
输出结果:
TruerFasle =
1×9 logical 数组
0 0 1 1 1 0 0 0 0
除了上述关系与逻辑运算符, MATLAB还提供了大量其他关系与逻辑函数。xor( x ,y )指令的功能为异或运算, x和y同
为零( 假) 或非零( 真)时返回0, 否则返回1。any(x)指令的功能为判断是否为零向量或零矩阵( 即向量或矩阵中
的元素全部为零), 如果是零向量或零矩阵, 则返回1, 否则返回0。
除此之外, MATLAB 还提供了大量的函数, 在运算过程中用来测试特殊值或条件是否存在, 并返回相应的表示结果的逻辑值, 如下表:
函数名称 | 函数功能 |
---|---|
finite | 元素有限,返回真值 |
Isempty | 参数为空,返回真值 |
isglobal | 参数是一个全局变量,返回真值 |
ishold | 当前绘图保持状态为"ON",返回真值 |
isieee | 计算机执行IEEE算术运算,返回真值 |
isinf | 元素无穷大,返回真值 |
isletter | 元素为字母,返回真值 |
isnan | 元素为不定值,返回真值 |
isreal | 参数无虚部,返回真值 |
isspace | 元素为空格字符,返回真值 |
isstr | 参量为一个字符串,返回真值 |
isstudent | MATLAB为学生版,返回真值 |
isunix | 计算机为UNIX系统,返回真值 |