![MATLAB R2022a完全自学一本通](https://wfqqreader-1252317822.image.myqcloud.com/cover/854/47548854/b_47548854.jpg)
2.1.2 逻辑类型
逻辑类型数据是指布尔类型数据,包括真(true)、假(false)两种数值,用于表达数据之间的逻辑关系。除了传统的数学运算,MATLAB还支持关系运算和逻辑运算。这些运算的目的是给出真/假命题的逻辑值,就是“真”或“假”。
作为所有关系表达式和逻辑表达式的输入,MATLAB把任何非零数值都当作真,把零当作假。所有关系表达式和逻辑表达式的输出:对于真,输出为1;对于假,输出为0。
逻辑类型数据在进行运算时需要用到关系运算符和逻辑运算符。MATLAB中的关系运算符如表2-6所示。
表2-6 MATLAB中的关系运算符
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_42_4.jpg?sign=1739704207-zk2BZx8EvfFAqHXYMi5gx17fY2IFDrcf-0-6894804057ccbcb5438c593d6674ab1e)
续表
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_1.jpg?sign=1739704207-LgdMFoVXmOEWQVcCBJQID4kPLiH2LKqM-0-5e8d2efacb3da9044f188b5fcf279342)
MATLAB中的关系运算符能用来比较两个同样大小的数组,或者用来比较一个数组和一个标量。在后一种情况中,标量和数组中的每个元素相比较,结果与数组大小一样。
例2-4:判断两个数组中的元素是否相等。
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_2.jpg?sign=1739704207-YVRI8BMQeTbxhEPlXoP3RG4KdLZOLxip-0-4fe09c7c2cbee5bda90c415ff4c76994)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_3.jpg?sign=1739704207-xiIjKgU3QsyV1tTEAxXp9957uS79A7zo-0-c3ffe8d46e6aff07dbdd2316244e71c4)
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_4.jpg?sign=1739704207-zRvsLQ1YESZj2zmGMcZuiCRZRb5Kvq0u-0-f66c4b80e5fea489721c4b40eaa6f4d3)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_5.jpg?sign=1739704207-VjIK0HQiDcGM2nrMD6CUU3gZdLrDMnB0-0-95a7f875083860df2413045f86b16600)
○ 提示
“=”和“==”在MATLAB中的意义是不同的。“==”是对等号两边的两个变量进行比较,当它们相等时返回1,不相等时返回0;而“=”则被用来将运算结果赋给一个变量。
逻辑运算符提供了一种组合或否定关系表达式,如表2-7所示。
表2-7 逻辑运算符
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_6.jpg?sign=1739704207-XOvElPPccVndBhM7g0QtxQIRUYTjkJCo-0-9238f54ed04bd92633b57f1cce73a379)
例2-5:判断数组中的元素是否在某个范围内。
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_7.jpg?sign=1739704207-TR47RUMHcIvLQkbphD65tZGiJspBNgHX-0-3ffe52b3b3ddab05a71f80bf04e378d4)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_43_8.jpg?sign=1739704207-olEuH4SKtNfLZuknZqNuWlEkUHLaa4gm-0-29b44776edbff538a18ea4b50dafb030)
除了上述关系运算符与逻辑运算符,MATLAB还提供了大量其他关系函数与逻辑函数。
(1)xor(x,y)指令的功能为异或运算,x和y同为零(假)或非零(真)时返回0,否则返回1。
(2)any(x)指令的功能为判断x是否为零向量或零矩阵(向量或矩阵中的元素全部为零),如果是非零向量或非零矩阵,则返回1;否则返回0。
除此之外,MATLAB还提供了大量的函数,在运算过程中用来测试特殊值或条件是否存在,并返回相应的表示结果的逻辑值,如表2-8所示。
表2-8 测试函数
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_44_1.jpg?sign=1739704207-6Er4eJlZvda2zgXZQCptevNGh0ftv5TT-0-4c23a80f1073031734d8705f3f95d7aa)