<, >, _lessНеравенства “меньше, чем” и “больше, чем”
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
x < y x > y _less(x,y)
x < y и x > y задайте неравенства.
x < y представляет булев оператор “x меньше y”. Это эквивалентно вызову функции _less(x,y).
x > y представляет булев оператор “x больше y”. Это всегда преобразуется в y < x, который эквивалентен вызову функции _less(y,x).
Эти операторы возвращают символьные Булевы выражения. Если только вещественные числа Type::Real включены, эти выражения могут быть выполнены к TRUE или FALSE функциональным bool. Они также служат условиями управления в ifповторение, и while операторы. Для интервалов с плавающей точкой эти операторы интерпретированы как “строго меньше, чем” и “строго больше, чем”. Смотрите Пример 2. Далее, Булевы выражения могут быть выполнены к TRUEложь, или UNKNOWN функциональным is. Тесты с помощью is может также быть применен к постоянным символьным выражениям. Смотрите Пример 4.
bool также неравенства указателей включающие символьные строки. Это сравнивает их относительно лексикографического упорядоченного расположения.
Неравенства имеют два операнда: левая сторона и правая сторона. Используйте lhs и rhs извлекать эти операнды.
Операторы < и > произведите символьные неравенства. Они могут быть оценены к TRUE или FALSE функциональным bool если только вещественные числа типа Type::Real (целые числа, rationals, и плавания), включены:
1.4 < 3/2; bool(%)
![]()
![]()
Сравнение интервалов интерпретировано как “строгое”, то есть, все комбинации чисел в интервалах должны выполнить отношение:
bool(0...1 < 2...3), bool(0...2 < 1...3), bool(0...1 < 1...2)
![]()
Сравните символьные строки:
if "text" < "t"."e"."x"."t"."book" then "yes" else "no" end
![]()
bool("a" > "b")![]()
Обратите внимание на то, что bool не выполняет символьное упрощение и поэтому не может обработать некоторые комбинации символьных выражений. Используйте функциональный is для сравнений, требующих символьного упрощения:
bool(sqrt(6) < sqrt(2)*sqrt(3))
Error: Unable to evaluate to Boolean. [_less]
is(sqrt(6) < sqrt(2)*sqrt(3))
![]()
Неравенства являются допустимыми входными объектами для системной функции solve:
solve(x^2 - 2*x < 3, x)
![]()
Оператор < может быть перегружен пользовательскими областями:
myDom := newDomain("myDom"):
myDom::print := x -> extop(x):Не перегружая _less или _leequal, элементы этой области не могут быть сравнены:
x := new(myDom, PI): y := new(myDom, sqrt(10)): bool(x < y)
Error: Unable to evaluate to Boolean. [_less]
Теперь задайте slot"_less". Этот паз называется когда неравенство типа "_less" оценен bool. Паз сравнивает приближения с плавающей точкой, если аргументы не имеют типа Type::Real:
myDom::_less := proc(x, y)
begin
x := extop(x, 1):
y := extop(y, 1):
if not testtype(x, Type::Real) then
x := float(x):
if not testtype(x, Type::Real) then
error("cannot compare")
end_if
end_if:
if not testtype(y, Type::Real) then
y := float(y):
if not testtype(y, Type::Real) then
error("cannot compare")
end_if
end_if:
bool(x < y)
end_proc:x, y, bool(x < y), bool(x > y)
![]()
bool(new(myDom, I) < new(myDom, PI))
Error: cannot compare [myDom::_less]
delete myDom, x, y:
|
Произвольные объекты MuPAD® |
Выражение типа "_less".
xY