Documentation |
Logical AND for symbolic expressions
A & B
and(A,B)
A |
Symbolic equation, inequality, or logical expression that contains symbolic subexpressions. |
B |
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^{®} 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