
4.1 关系运算符
关系运算符是指两个数值或字符操作数之间的运算符。关系运算将根据两个操作数的关系产生结果true或false。
4.1.1 关系运算符的基本形式
关系运算的基本形式如下:

其中,a1和a2可以是算术表达式、变量或字符串,op代表表4-1中的一个运算符。如果两者的关系为真(true),那么这个运算会返回1;否则返回0。
表4-1 关系运算符

下面是一些关系运算和它的运算结果。
运算 结果
3 < 4 1
3 <= 4 1
3 == 4 0
3 > 4 0
4 <= 4 1
'A' < 'B' 1
最后一个运算得到的结果为1,这是因为字符之间的求值遵循ASCII表中的顺序。
注 意
不要混淆等于关系运算符(==)和赋值运算符(=)的运用。
在运算的层次中,关系运算在所有的数学运算之后进行。所以,下面两个表达式是等价的,输出结果均为1:


4.1.2 等于运算符和不等于运算符
等于运算符(==):如果两个变量的值相同则返回1,否则返回0。
不等运算符(~=):如果两个变量的值不同则返回1,否则返回0。
使用等于运算符和不等于运算符比较两个字符串是安全的,不会出现错误。但对两个数字数据进行比较,可能会产生意想不到的错误。两个理论上相等的数不能有一丝一毫的差别,而计算机在计算过程中如果出现了近似的现象,则可能在判断相等与不相等的过程中产生错误,这种错误称为round off错误。
例如,考虑下面的两个数,两者均应等于0:

因为这两个数在理论上是相等的,所以关系式a==b应当返回1。但事实上,MATLAB计算所产生的结果如下:

MATLAB报告了a和b不同,因为它产生了一个round off错误,在计算中,sin(pi)的结果是1.2246×10-16,而不是0。两个理论上相等的值因为round off错误而发生了细微的差别。
可以通过检测两个数在一定范围内是否近似相等,在这个精确范围内可能会产生round off错误。具体示例如下:

不管a与b在计算过程中是否产生round off错误,上述示例都会产生正确的结果。
技 巧
在检测两个数是否相等时一定要小心,因为round off错误可能会使两个本来应该相等的数不相等,这时可以通过比较确认在round off错误的范围内它们是不是近似相等。