==>
, _implies
Логическое значение
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
b1 ==> b2 _implies(b1
,b2
)
b1 ==> b2
представляет логическое значение Булевых выражений b1
, b2
.
a ==> b
эквивалентен not a or b
. Смотрите Пример 1.
_implies(a, b)
эквивалентен a ==> b
.
MuPAD® использует логику с тремя состояниями с булевыми константами TRUE
, FALSE
и UNKNOWN
. Они обрабатываются можно следующим образом:
and | TRUE | FALSE | UNKNOWN |
TRUE | TRUE | FALSE | UNKNOWN |
FALSE | FALSE | FALSE | FALSE |
UNKNOWN | UNKNOWN | FALSE | UNKNOWN |
Булевы выражения могут состоять из этих констант, а также из произвольных арифметических выражений. Как правило, уравнения, такие как x = y
и неравенства, такие как x <> y
, x < y
, x <= y
, используются, чтобы создать Булевы выражения.
Комбинации констант TRUE
, FALSE
, UNKNOWN
в Булевом выражении упрощен автоматически. Однако символьные булевы подвыражения, равенства и неравенства не оценены и упрощены логическими операторами. Используйте bool
, чтобы выполнить такие выражения к одной из булевых констант. Обратите внимание, однако, что bool
может оценить неравенства x < y
, x <= y
, и так далее, только если они состоят из количеств типа Type::Real
.
Используйте simplify
с опцией logic
, чтобы упростить выражения, включающие символьные булевы подвыражения. Смотрите Пример 1.
Приоритеты логических операторов следующие. Если в сомнении, используйте круглые скобки, чтобы гарантировать, что выражение анализируется, как желаемый.
Оператор not
является более сильной привязкой, чем and
, то есть, not b1 and b2
= (not b1) and b2
.
Оператор and
является более сильной привязкой, чем xor
, то есть, b1 and b2 or b3
= (b1 and b2) xor b3
.
Оператор xor
является более сильной привязкой, чем or
, то есть, b1 xor b2 or b3
= (b1 xor b2) or b3
.
Оператор or
является более сильной привязкой, чем ==>
, то есть, b1 or b2 ==> b3
= (b1 or b2) ==> b3
.
Оператор ==>
является более сильной привязкой, чем <=>
, то есть, b1 ==> b2 <=> b3
= (b1 ==> b2) <=> b3
.
В условном контексте if
, repeat
и операторов while
, Булевы выражения выполнены через “отложенные вычисления” (см. _lazy_and
, _lazy_or
). В любом другом контексте оценены все операнды.
a ==> b
эквивалентен not a or b
.
simplify((a ==> b), logic)
not a or b
|
Булевы выражения |
Булево выражение.
b
, b_1
, b_2