in
, _in
Членство
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
x in set _in(x
,set
) for y in object do body end_for f(y) $ y in object
x in set
является обозначением MuPAD® для оператора “x is a member of set
”.
В сочетании с одним из ключевых слов for
или $
, значение изменяется, чтобы “выполнить итерации по всем операндам объекта”. Смотрите for
и $
для деталей. Cf. Пример 6.
Кроме использования с for
и $
, оператор x in object
эквивалентен вызову функции _in(x, object)
.
x in set
только оценен к себе. expand(x in set)
пытается возвратить эквивалентное выражение, не используя оператор in
, как описано в следующих параграфах.
Для наборов типа DOM_SET
, объединения набора, различия и пересечения, x in set
расширен до эквивалентного Булевого выражения уравнений и выражений, включающих in
. Cf. Пример 1.
Если set
является набором решения одного уравнения в одном неизвестном, данный символьным вызовом solve
, расширяя in
возвращает булево условие, которое эквивалентно x
, являющемуся решением. Cf. Пример 2.
Если set
является выражением RootOf
, расширение in
возвращает булево условие, которое эквивалентно x
, являющемуся корнем соответствующего уравнения. Cf. Пример 3.
Функциональный bool
и каждая функция, которая использует булеву оценку, могут также обработать много логических выражений, включающих in
. Cf. Пример 4.
Функциональный is
обрабатывает различные логические операторы, включающие in
, включая множество типов для параметра set
, которые не обработаны самим in
. Cf. Пример 5 для нескольких типичных случаев.
Кроме обычного механизма перегрузки первым аргументом вызова in
, in
может быть перегружен его вторым аргументом, также. Этот аргумент должен задать slot"set2expr"
с этой целью. Слот будет вызван аргументами set, x
.
x in {1, 2, 3}
расширен в эквивалентный оператор, включающий =
и or
:
expand(x in {1, 2, 3})
То же самое происходит, если вы заменяете x
номером, потому что Булевы выражения только выполнены в определенных функциях, таких как bool
или is
:
expand(1 in {1, 2, 3}), bool(1 in {1, 2, 3}), is(1 in {1, 2, 3})
Если только некоторая часть выражения может быть упрощена этот путь, возвращенное выражение может содержать неоцененные вызовы in
:
expand(x in {1, 2, 3} union A)
Для символьных вызовов solve
, представляющего набор решения одного уравнения в одном неизвестном, in
может использоваться, чтобы проверять, находится ли особое значение в наборе решения:
solve(cos(x) + x = cos(2) + 2, x); expand(2 in %), bool(2 in %)
in
может использоваться, чтобы проверять, является ли значение членом набора решения, представленного выражением RootOf
:
r := RootOf(x^2 - 1, x); expand(1 in r), bool(1 in r), expand(2 in r), bool(2 in r)
expand((y - 1) in RootOf(x^2 - 1 - y^2 + 2*y, x))
expand(%)
delete r:
Выражения с оператором in
являются булевыми выражениями: они могут использоваться как уравнения или неравенства.
if 2 in {2, 3, 5} then "ok" end
Функция MuPAD is
может исследовать членство объектов в бесконечных множествах. Это уважает свойства идентификаторов:
is(123 in Q_), is(2/3 in Q_)
В сочетании с for
и $
, y in object
выполняет итерации y по всем операндам объекта:
for y in [1, 2] do print(y) end_for:
y^2 + 1 $ y in a + b*c + d^2
delete y:
|
Произвольный объект MuPAD |
|
Набор или объект подобного набору типа |
|
Идентификатор или локальная переменная ( |
|
Произвольные объекты MuPAD |
x in set
только возвращает вход.
set
, x