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.

Примеры

Пример 1

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)

Пример 2

Для символьных вызовов solve, представляющего набор решения одного уравнения в одном неизвестном, in может использоваться, чтобы проверять, находится ли особое значение в наборе решения:

solve(cos(x) + x = cos(2) + 2, x);
expand(2 in %), bool(2 in %)

Пример 3

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:

Пример 4

Выражения с оператором in являются булевыми выражениями: они могут использоваться как уравнения или неравенства.

if 2 in {2, 3, 5} then "ok" end

Пример 5

Функция MuPAD is может исследовать членство объектов в бесконечных множествах. Это уважает свойства идентификаторов:

is(123 in Q_), is(2/3 in Q_)

Пример 6

В сочетании с 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:

Параметры

x

Произвольный объект MuPAD

set

Набор или объект подобного набору типа

y

Идентификатор или локальная переменная (DOM_VAR) процедуры

object, f(y)

Произвольные объекты MuPAD

Возвращаемые значения

x in set только возвращает вход.

Перегруженный

set, x

Смотрите также

Функции MuPAD