![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=1738928676-Y3wyNjNma4HkZZELurUTlyl7uW7xak8P-0-e977964a0fdabe5706ebaf885e236b5a)
其中,a1和a2可以是算术表达式、变量或字符串,op代表表4-1中的一个运算符。如果两者的关系为真(true),那么这个运算会返回1;否则返回0。
表4-1 关系运算符
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_2.jpg?sign=1738928676-VdSJnkKi6gXyfL7iuVJrIVXeQ8oYDDiN-0-583ed3338a8dc0b06c66823d9369755f)
下面是一些关系运算和它的运算结果。
运算 结果
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=1738928676-j9XAKxw2PFSvNU4Y4HxVEaIwuEdATvIN-0-61ed2d65f252f7efaf2649ddb62810a3)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_4.jpg?sign=1738928676-TDAbPGvdx0F3bNToLyeQF39IaVATJU2y-0-9cf5da28b417576e6cb36e2a681401d8)
4.1.2 等于运算符和不等于运算符
等于运算符(==):如果两个变量的值相同则返回1,否则返回0。
不等运算符(~=):如果两个变量的值不同则返回1,否则返回0。
使用等于运算符和不等于运算符比较两个字符串是安全的,不会出现错误。但对两个数字数据进行比较,可能会产生意想不到的错误。两个理论上相等的数不能有一丝一毫的差别,而计算机在计算过程中如果出现了近似的现象,则可能在判断相等与不相等的过程中产生错误,这种错误称为round off错误。
例如,考虑下面的两个数,两者均应等于0:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_5.jpg?sign=1738928676-ItthNXNpkQnTgUloeANuRTXK9PfGTaau-0-e69afe3c3ee0e4d2483e76082dc085ec)
因为这两个数在理论上是相等的,所以关系式a==b应当返回1。但事实上,MATLAB计算所产生的结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt005_6.jpg?sign=1738928676-p8drWGemkbkU5Jc57Im28bTvcxvPue28-0-55dfa942b736ee708aa81f6f52729870)
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=1738928676-qlKfGh0rZv6IuuXT7OXIzHVSb9U6EziQ-0-352b0b53936459873d64be52474097dc)
不管a与b在计算过程中是否产生round off错误,上述示例都会产生正确的结果。
技 巧
在检测两个数是否相等时一定要小心,因为round off错误可能会使两个本来应该相等的数不相等,这时可以通过比较确认在round off错误的范围内它们是不是近似相等。