Logical XOR for symbolic expressions
Combine two symbolic inequalities into a logical expression usingxor
.
信谊x范围= xor (x > -10 x< 10);
Replace variablex
with 11 and 0. If you replacex
with 11, then inequalityx > -10
is valid andx < 10
is invalid. If you replacex
with 0, both inequalities are valid. Note thatsubs
only substitutes the numeric values into the inequalities. It does not evaluate the inequalities to logical1
or0
.
x1 = subs(range,x,11) x2 = subs(range,x,0)
x1 = -10 < 11 xor 11 < 10 x2 = -10 < 0 xor 0 < 10
To evaluate these inequalities to logical1
or0
, useisAlways
. If only one inequality is valid, the expression withxor
evaluates to logical1
. If both inequalities are valid, the expression withxor
evaluates to logical0
.
isAlways(x1) isAlways(x2)
ans = logical 1 ans = logical 0
Note thatsimplify
does not simplify these logical expressions to logical1
or0
. Instead, simplify returnssymbolicconstantssymtrue
orsymfalse
.
s1 = simplify(x1) s2 = simplify(x2)
s1 = symtrue s2 = symfalse
Convert symbolicsymtrue
orsymfalse
to logical values usinglogical
.
logical(s1) logical(s2)
ans = logical 1 ans = logical 0
If you callsimplify
for a logical expression containing symbolic subexpressions, you can get the symbolic constantssymtrue
和symfalse
. These two constants are not the same as logical1
(true
) and logical0
(false
). To convert symbolicsymtrue
和symfalse
to logical values, uselogical
.
assume
和assumeAlso
do not accept assumptions that containxor
.