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```

```>> 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.```