代码改变世界

MATLAB关系运算符和逻辑运算符

2013-08-24 16:10  chloe_zhou  阅读(66682)  评论(0编辑  收藏  举报

1 关系运算符

关系运算符用来比较两个数之间的大小关系,在Matlab中的关系运算符包括:

  1. <    小于
  2. <=  小于或等于
  3. >        大于
  4. >=      大于或等于
  5. ==      等于
  6. ~=      不等于

  这些关系运算符还能用来比较两个同维矩阵,实际上是比较两个矩阵对应的元素,比较结果仍然是一个矩阵. 如果两个矩阵的对应元素符合某个关系,则结果矩阵对应的元素为1,否则为0,例如

  

2 逻辑运算符和逻辑函数

元素/标量级的逻辑运算符

  元素级(Element-Wise)的逻辑运算符用于对标量或矩阵元素进行逻辑运算,得到一个结果标量或结果矩阵。假设操作数为a和b,则元素级逻辑运算符包括:

  1. a&b : 与运算,两标量或两元素均非0则返回1,否则返回0. 注意,在if 条件语句中,两个表达式的与操作用&&.
  2. a|b :  或运算,两标量或者两元素至少有一个是非0则返回1,否则返回0. 在条件语句中,两个表达式的或用||.
  3. ~a :   非运算,对作用的标量或矩阵元素求补,如果标量或者矩阵元素为0则结果为1,如果标量或矩阵元素不为0则结果为0.
  4. xor(a,b) :  异或运算,两标量或两元素均非0或均为0则返回0,否则返回1。

这四个逻辑运算的事例如下所示:

  

  其中,与、或、非运算都有对应的函数形式: A & B = and(A, B), A | B=or(A, B), ~A=not(A).注意,如果两个矩阵或者两个数组要进行与、或、异或运算,则这两个矩阵或者数组要具有相同的维度.

比特级的逻辑函数

  比特级(Bit-Wise)的逻辑运算符作用在非负两个或一个整数上. 运算时,先将整数参数转换成二进制比特串形式,然后按位操作。假设操作数为a=28 (二进制11100)和b=21 (二进制10101),比特级的逻辑函数包括:

  1. bitand:       对两个操作数按位与,例如bitand(a,b)=20 (二进制10100).
  2. bitor:         对两个操作数按位或,例如bitor(a,b)=29 (二进制11101).
  3. bitcmp:      对操作数按位求反(补),其中二个参数时返回值的二进制串长度,不能小于原操作数的二进制长度,例如bitcmp(a,5)=3 (二进制00011).
  4. bitxor:       对两个操作数按位异或,例如bitxor(a,b)=9(二进制01001).