and

Logical AND for symbolic expressions

Syntax

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 & 1/2 < 1
x2 =
0 < 10 & 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

More About

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.

See Also

| | | | | |

Was this topic helpful?