Логический XOR для символьных выражений
Объедините два символьных неравенства в логическое выражение с помощью xor
.
syms x range = xor(x > -10, x < 10);
Замените переменную x
с 11 и 0. Если вы заменяете x
с 11, затем неравенство x > -10
действителен и x < 10
недопустимо. Если вы заменяете x
при 0 оба неравенства действительны. Обратите внимание, что subs
подставляет только числовые значения в неравенства. Он не оценивает неравенства к логическим 1
или 0
.
x1 = subs(range,x,11) x2 = subs(range,x,0)
x1 = -10 < 11 xor 11 < 10 x2 = -10 < 0 xor 0 < 10
Чтобы оценить эти неравенства к логическим 1
или 0
, использование isAlways
. Если допустимо только одно неравенство, выражение с xor
вычисляет логическую 1
. Если оба неравенства верны, выражение с xor
вычисляет логическую 0
.
isAlways(x1) isAlways(x2)
ans = logical 1 ans = logical 0
Обратите внимание, что simplify
не упрощает эти логические выражения до логических 1
или 0
. Вместо этого упрощение возвращает символьные константы symtrue
или symfalse
.
s1 = simplify(x1) s2 = simplify(x2)
s1 = symtrue s2 = symfalse
Преобразуйте символьные symtrue
или symfalse
к логическим значениям с помощью logical
.
logical(s1) logical(s2)
ans = logical 1 ans = logical 0
Если вы звоните simplify
для логического выражения, содержащего символьные подэкспрессии, можно получить символьные константы symtrue
и symfalse
. Эти две константы не совпадают с логическими 1
(true
) и логические 0
(false
). Для преобразования символьных symtrue
и symfalse
для логических значений используйте logical
.
assume
и assumeAlso
не принимайте допущения, которые содержат xor
.