关系运算符和逻辑运算符
选择结构的运算由一个表达式控制的,这个表达式的结果只有true(1)和false(0)。有两种形式的运算符可以在MATLAB中关系得到true/false:关系运算符和逻辑运算符。
跟C语言一样,MATLAB没有布尔型和逻辑数据类型。MATLAB把0值作为结果false,把所有的非0值作为结果ture。
3.3.1 关系运算符
关系运算符是指两数值或字符操作数的运算符,这种运算将会根椐两操作数的关系产生结果true或false。关系运算的基本形式如下
a1 op a2
其中a1和a2是算术表达式,变量或字符串,op代表表3.1中的关系运算符中的一个。
如果两者的关系为真(true)时,那么这个运算将会返回1值;否则将会返回0值。
表3.1 关系运算符 | 运算符 | 运算 | == | 等于 | ~= | 不等于 | > | 大于 | >= | 大于或等于 | < | 小于 | <= | 小于或等于 |
下面是一些关系运算和它的结果运算结果
3 < 4 | 1 | 3 <= 4 | 1 | 3 == 4 | 0 | 3 > 4 | 0 | 4 <= 4 | 1 | 'A' < 'B' | 1 |
最后一个运算得到的结果为1,是因为字符之间的求值要按照子母表的顺序。
注意因为字符串实际上是字符的数组,关系运算符也比较两个相同长度的字符串。如果它们有不同的长度,比较运算将会产生一个错误。在第六章中我们将会学到一个更普遍的方法。等于关系运算符由两个等号组成,而赋值运算符只有一个等号。
它们是完全不同的两个符号,初学者极易混淆。符号==是一个比较运算符,返回一个逻辑数,而符号=是将等号右边的表达式的值赋给左边的变量。当进行比较运算的时候,初学者经常用误用符号=。
常见编程错误
小心谨慎不要混淆了等于关系运算符(==)和赋值运算符(=)。
在运算的层次中,关系运算在所有数学运算的之后进行。所以下面两个表达式是等价的,均产生结果1。
7 + 3 < 2 + 11
(7 + 3)< (2 + 11)
|