逻辑运算符,一般包括逻辑与、逻辑或、逻辑非、逻辑异或;Matlab逻辑运算中,也大致包括这些逻辑运算。接下来,我们分别介绍下几种常见的逻辑运算。
- 逻辑与:两个操作数同时为1时,结果为1,否则为0;符号:&或and
- 逻辑或:两个操作数同时为0时,结果为0,否则为1;|或or
- 逻辑非:当操作数为0时,结果为1,否则为0;~
- 逻辑异或:两个操作结果相同时,结果为0,否则为1;xor
- 有非零元素为真;any
- 所有元素均非零则为真;all
接下来,我们举几个例子说明它们的用法:
>> A=1; >> B=2; >> C=0; >> A&B ans = 1 >> A&B&C ans = 0 >> A|B ans = 1 >> A|B|C ans = 1 >> ~A ans = 0 >> ~C ans = 1 >> xor(A,B) ans = 0 >> xor(B,C) ans = 1 >> any([A,B,C]) ans = 1 >> all([A,B,C]) ans = 0
需要注意的是,与、或、非、异或,都可以直接对元素操作,而any和all只能对矩阵操作,所以我们要用([])这种方式进行运算。最后,再给出Matlab中关于这些函数的帮助文档如下:
>> help and & Logical and. A & B performs a logical and of arrays A and B and returns an array containing elements set to either logical 1 (TRUE) or logical 0 (FALSE). An element of the output array is set to 1 if both input arrays contain a non-zero element at that same array location. Otherwise, that element is set to 0. A and B must have the same dimensions unless one is a scalar. C = and(A,B) is called for the syntax 'A & B' when A or B is an object. Note that there are two logical and operators in MATLAB. The & operator performs an element-by-element and between matrices, while the && operator performs a short-circuit and between scalar values. See the documentation for details. >> help or | Logical or. A | B performs a logical or of arrays A and B and returns an array containing elements set to either logical 1 (TRUE) or logical 0 (FALSE). An element of the output array is set to 1 if either input array contains a non-zero element at that same array location. Otherwise, that element is set to 0. A and B must have the same dimensions unless one is a scalar. C = or(A,B) is called for the syntax 'A | B' when A or B is an object. Note that there are two logical or operators in MATLAB. The | operator performs an element-by-element or between matrices, while the || operator performs a short-circuit or between scalar values. See the documentation for details. >> help ~ ~ Logical not. ~A performs a logical not of input array A, and returns an array containing elements set to either logical 1 (TRUE) or logical 0 (FALSE). An element of the output array is set to 1 if A contains a zero value element at that same array location. Otherwise, that element is set to 0. B = not(A) is called for the syntax '~A' when A is an object. ~ can also be used to ignore input arguments in a function definition, and output arguments in a function call. See "help punct" >> help xor xor Logical EXCLUSIVE OR. xor(S,T) is the logical symmetric difference of elements S and T. The result is logical 1 (TRUE) where either S or T, but not both, is nonzero. The result is logical 0 (FALSE) where S and T are both zero or nonzero. S and T must have the same dimensions (or one can be a scalar). >> help any any True if any element of a vector is a nonzero number or is logical 1 (TRUE). any ignores entries that are NaN (Not a Number). For vectors, any(V) returns logical 1 (TRUE) if any of the elements of the vector is a nonzero number or is logical 1 (TRUE). Otherwise it returns logical 0 (FALSE). For matrices, any(X) operates on the columns of X, returning a row vector of logical 1's and 0's. For multi-dimensional arrays, any(X) operates on the first non-singleton dimension. any(X,DIM) works down the dimension DIM. For example, any(X,1) works down the first dimension (the rows) of X. >> help all all True if all elements of a vector are nonzero. For vectors, all(V) returns logical 1 (TRUE) if none of the elements of the vector are zero. Otherwise it returns logical 0 (FALSE). For matrices, all(X) operates on the columns of X, returning a row vector of logical 1's and 0's. For N-D arrays, all(X) operates on the first non-singleton dimension. all(X,DIM) works down the dimension DIM. For example, all(X,1) works down the first dimension (the rows) of X.
需要注意的是,任何非0元素都为真!
© 版权声明
THE END
暂无评论内容