Accelerating the pace of engineering and science

• Trials

# and

Logical AND for symbolic expressions

A & B
and(A,B)

## Description

A & B represents the logical conjunction. A & B is true only when both A and B are true.

and(A,B) is equivalent to A & B.

## Input Arguments

 A Symbolic equation, inequality, or logical expression that contains symbolic subexpressions. B Symbolic equation, inequality, or logical expression that contains symbolic subexpressions.

## Examples

Combine these symbolic inequalities into the logical expression using &:

syms x y
xy = x >= 0 & y >= 0;

Set the corresponding assumptions on variables x and y using assume:

assume(xy)

Verify that the assumptions are set:

assumptions
ans =
[ 0 <= x, 0 <= y]

Combine two symbolic inequalities into the logical expression using &:

syms x
range = 0 < x & x < 1;

Replace variable x with these numeric values. If you replace x with 1/2, then both inequalities are valid. If you replace x with 10, both inequalities are invalid. Note that subs does not evaluate these inequalities to logical 1 or 0.

x1 = subs(range, x, 1/2)
x2 = subs(range, x, 10)
x1 =
0 < 1/2 and 1/2 < 1

x2 =
0 < 10 and 10 < 1

To evaluate these inequalities to logical 1 or 0, use logical or isAlways:

logical(x1)
isAlways(x2)
ans =
1

ans =
0

Note that simplify does not simplify these logical expressions to logical 1 or 0. Instead, they return symbolic values TRUE or FALSE.

s1 = simplify(x1)
s2 = simplify(x2)
s1 =
TRUE

s2 =
FALSE

Convert symbolic TRUE or FALSE to logical values using logical:

logical(s1)
logical(s2)
ans =
1

ans =
0

The recommended approach to define a range of values is using &. Nevertheless, you can define a range of values of a variable as follows:

syms x
range = 0 < x < 1;

Now if you want to replace variable x with numeric values, use symbolic numbers instead of MATLAB® double-precision numbers. To create a symbolic number, use sym

x1 = subs(range, x, sym(1/2))
x2 = subs(range, x, sym(10))
x1 =
(0 < 1/2) < 1

x2 =
(0 < 10) < 1

To evaluate these inequalities to logical 1 or 0, use isAlways. Note that logical cannot resolve such inequalities.

isAlways(x1)
isAlways(x2)
ans =
1

ans =
0

expand all

### Tips

• If you call simplify for a logical expression containing symbolic subexpressions, you can get symbolic values TRUE or FALSE. These values are not the same as logical 1 (true) and logical 0 (false). To convert symbolic TRUE or FALSE to logical values, use logical.