Matlab 中的逻辑运算"&&"与 "&", "||"与 "|"的区别 (2009-12-06 20:59:06) 转载 标签: 杂谈 逻辑运算符: & 与 | 或 ~ 非 “&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,如果 A 和 B 都是0-1矩阵,则 A& B 或 A|B 也都是0-1矩阵,这个0-1矩阵的元素是A 和 B 对应元素之间逻辑运算的结果,逻辑操作符认定任何非零元素都为真,给出“1”,任何零元素都为假,给出“0”. 非 (或逻辑非)是一元操作符,即~A:当A 是非零时结果为“0”;当A 为“0”时,结果为“1”.因此下列两种表示: p | (~p) 结果为1. p & (~p) 结果为0. any 和 all 函数在连接操作时很有用,设 x 是 0-1向量,如果x 中任意有一元素非零时,any(x)返回“1”,否则返回“0”;all(x)函数当x 的所有元素非零时,返回“1”,否则也返回“0”.这些函数在if 语句中经常被用到.如: if all(A10 if flag %Do Something end if 上面的表达式就可以防止denum 等于0的情况
当然,如果你希望在判断的时候,对A 和 B表达式都进行计算,就应该使用标准的&或者|
Matlab 中的if 和 while 语句中的逻辑与和逻辑或都是默认使用short-circuit 形式
if flag=denum~=0 && num/denum>10 %Do Something end if 与 if flag=denum~=0 & num/denum>10 %Do Something end if 执行的结果一样 符号 符号用途说明 + 加 - 减
* 点乘 详细说明help arith * 矩