1 关系运算符
a1 op a2
其中 a1和 a2是算术表达式,变量或字符串,op 代表关系运算符中的一个,如表1所示。如果两者的关系为真(true)时,那么这个运算将会返回 1 值;否则将会返回 0 值。
表1 关系运算符
最后一个运算得到的结果为 1,是因为字符之间的求值要按照子母表的顺序。关系运算符也可用于标量与数组的比较。例如,如果a=[1 0;-2 1]和 b=0,那么表达式 a>b 将会产生结果[1 0; 1 0]例如a=[1 0;-2 1],b=[0 2;-2 -1],表达式 a>=b 将会产生结果[1 0;1 1].如果这个数组具有不同的大小,那么将会产生运行时错误。注意因为字符串实际上是字符的数组,关系运算符也比较两个相同长度的字符串。如果它们有不同的长度,比较运算将会产生一个错误。在第六章中我们将会学到一个更普遍的方法。等于关系运算符由两个等号组成,而赋值运算符只有一个等号。它们是完全不同 的两个符号,初学者极易混淆。符号==是一个比较运算符,返回一个逻辑数,而符号=是将等号右边的表达式的值赋给左边的变量。当进行比较运算的时候,初学者经常用误用符号=。
7 + 3 < 2 + 11
(7 + 3)< (2 + 11)
a = 0;
b = sin(pi);
ans = 0
MATLAB 报告了 a 和 b 不同因为他产生了一个 round off 错误,在计算中 sin(pi)产生了结果 1.2246×10^(-16) 而不是 0。两个理论上相等的值因为 round off 错误而失之发生了细微的差别。我们可以通过检测两数之间在一定的范围内是不是近似相等,在这个精确范围内可能会产生 round off 错误。例如测试
abs(a - b) < 1.0E-14
结果就是ans=1
2 逻辑运算符
a1 op a2
op a1
表2 逻辑运算符

在运算的顺序中,逻辑运算在所有的数学运算和关系运算之后进行。
例 1
value1 = 1
value2 = 0
value3 = -10
因为~运算在其它的逻辑运算之前进行,那么(f)中的括号是必须的。如果去掉括号的话,(f)表达式将等价于(~value1)&value3。
MATLAB 中有大量的逻辑函数,在条件满足时,函数返回 1。条件不满足时,返回0。这些函数和逻辑运算与关系联合在组成选择结构和循环结构。表 4列出了一系列的逻辑函数。
表 4 MATLAB 逻辑函数