Логический XOR для символьных выражений
Объедините два символьных неравенства в логическое выражение с помощью xor
:
syms x range = xor(x > -10, x < 10);
Замените переменную x
с этими числовыми значениями. Если вы заменяете 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
. Вместо этого они возвращают символьные значения TRUE
или FALSE
.
s1 = simplify(x1) s2 = simplify(x2)
s1 = TRUE s2 = FALSE
Преобразуйте символьный TRUE
или FALSE
к логическим значениям с помощью isAlways
:
isAlways(s1) isAlways(s2)
ans = logical 1 ans = logical 0
Если вы вызываете simplify
для логического выражения, содержащего символьные подвыражения, можно получить символьные значения TRUE
или FALSE
. Эти значения не являются тем же самым как логическим 1
TRUE
) и логический 0
ложь
). Преобразовывать символьный TRUE
или FALSE
к логическим значениям используйте isAlways
.
assume
и assumeAlso
не принимайте предположения, которые содержат xor
.