Логический XOR для символьных выражений
xor(A,B)Объедините два символьных неравенства в логическое выражение с помощью 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 (false). Чтобы преобразовать символьный TRUE или FALSE к логическим значениям, используйте isAlways.
assume и assumeAlso не принимают предположения, которые содержат xor.