Logical AND for symbolic expressions
A & B
and(A,B)

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

Symbolic equation, inequality, or logical expression that contains symbolic subexpressions. 
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^{®} doubleprecision
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