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