Documentation

# and, &

Find logical AND

## Syntax

``A & B``
``and(A,B)``

## Description

example

````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 logical 1 (`true`) if both `A` and `B` contain a nonzero element at that same array location. Otherwise, the array element is set to 0.```
````and(A,B)` is an alternate way to execute `A & B`, but is rarely used. It enables operator overloading for classes.```

## Examples

collapse all

Find the logical AND of two matrices. The result contains logical `1` (`true`) only where both matrices contain nonzero values.

`A = [5 7 0; 0 2 9; 5 0 0]`
```A = 3×3 5 7 0 0 2 9 5 0 0 ```
`B = [6 6 0; 1 3 5; -1 0 0]`
```B = 3×3 6 6 0 1 3 5 -1 0 0 ```
`A & B`
```ans = 3x3 logical array 1 1 0 0 1 1 1 0 0 ```

Create a truth table for `and`.

`A = [true false]`
```A = 1x2 logical array 1 0 ```
`B = [true; false]`
```B = 2x1 logical array 1 0 ```
`C = A&B`
```C = 2x2 logical array 1 0 0 0 ```

## Input Arguments

collapse all

Left operand, specified as a scalar, vector, matrix, or multidimensional array. Inputs `A` and `B` must either be the same size or have sizes that are compatible (for example, `A` is an `M`-by-`N` matrix and `B` is a scalar or `1`-by-`N` row vector). For more information, see Compatible Array Sizes for Basic Operations.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64` | `logical`

Right operand, specified as a scalar, vector, matrix, or multidimensional array. Inputs `A` and `B` must either be the same size or have sizes that are compatible (for example, `A` is an `M`-by-`N` matrix and `B` is a scalar or `1`-by-`N` row vector). For more information, see Compatible Array Sizes for Basic Operations.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64` | `logical`

## Tips

• You can chain together several logical operations, for example, `A & B | C`.

• The symbols `&` and `&&` perform different operations in MATLAB®. The element-wise AND operator described here is `&`. The short-circuit AND operator is `&&`.

• When you use the element-wise `&` and `|` operators in the context of an `if` or `while` loop expression (and only in that context), they use short-circuiting to evaluate expressions. Otherwise, you must specify `&&` or `||` to opt-in to short-circuiting behavior. See ```Logical Operators: Short Circuit``` for more information.

Download ebook