![MATLAB R2020a从入门到精通(升级版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/74/38507074/b_38507074.jpg)
4.1 关系运算符
关系运算符是指两个数值或字符操作数之间的运算符。关系运算将根据两个操作数的关系产生结果true或false。
4.1.1 关系运算符的基本形式
关系运算的基本形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_1.jpg?sign=1739285839-MCf4sJiBdW3LppALv5q8yXJpdbm95Lqk-0-00e6a51b5ebe2b1cfa81c7bae211d05c)
其中,a1和a2可以是算术表达式、变量或字符串,op代表表4-1中的一个运算符。如果两者的关系为真(true),那么这个运算会返回1;否则返回0。
表4-1 关系运算符
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_2.jpg?sign=1739285839-ILTMQcVvQyNosZ8T5PCK1Y7wp9pTqTqu-0-aa95ce76187de4c4ed98c11d6d032c86)
下面是一些关系运算和它的运算结果。
运算 结果
3 < 4 1
3 <= 4 1
3 == 4 0
3 > 4 0
4 <= 4 1
'A' < 'B' 1
最后一个运算得到的结果为1,这是因为字符之间的求值遵循ASCII表中的顺序。
注 意
不要混淆等于关系运算符(==)和赋值运算符(=)的运用。
在运算的层次中,关系运算在所有的数学运算之后进行。所以,下面两个表达式是等价的,输出结果均为1:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_3.jpg?sign=1739285839-OjDHSW2aqXagRCKr7S6BgzZHPK3E0MrJ-0-7e9bb6fa1b110049c2b3862e11d11ae3)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_4.jpg?sign=1739285839-9p0nj9KdOMLKIFywNS2Q1bE0Nhu9i1wa-0-b29b834e4cfeba23c527ad227dc33cef)
4.1.2 等于运算符和不等于运算符
等于运算符(==):如果两个变量的值相同则返回1,否则返回0。
不等运算符(~=):如果两个变量的值不同则返回1,否则返回0。
使用等于运算符和不等于运算符比较两个字符串是安全的,不会出现错误。但对两个数字数据进行比较,可能会产生意想不到的错误。两个理论上相等的数不能有一丝一毫的差别,而计算机在计算过程中如果出现了近似的现象,则可能在判断相等与不相等的过程中产生错误,这种错误称为round off错误。
例如,考虑下面的两个数,两者均应等于0:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_5.jpg?sign=1739285839-CP3kHz6kfHjaXXjZD0yyfkLmBj02EDgO-0-b492364aef72508459a2b32b5b0f7708)
因为这两个数在理论上是相等的,所以关系式a==b应当返回1。但事实上,MATLAB计算所产生的结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_6.jpg?sign=1739285839-p2GASqrEPHA5ENI9QKvB5uY1wJzBjccd-0-921b76e36cc45c62df9cc76f403b0671)
MATLAB报告了a和b不同,因为它产生了一个round off错误,在计算中,sin(pi)的结果是1.2246×10-16,而不是0。两个理论上相等的值因为round off错误而发生了细微的差别。
可以通过检测两个数在一定范围内是否近似相等,在这个精确范围内可能会产生round off错误。具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_7.jpg?sign=1739285839-5jvWd7YS7KUV06sEJ5mgUYUH5xhPTk4U-0-afd731ab728baa1df62045a37cd46d47)
不管a与b在计算过程中是否产生round off错误,上述示例都会产生正确的结果。
技 巧
在检测两个数是否相等时一定要小心,因为round off错误可能会使两个本来应该相等的数不相等,这时可以通过比较确认在round off错误的范围内它们是不是近似相等。