DOM_SET

Наборы объектов

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Описание

Набор типа DOM_SET может сохранить произвольное конечное число произвольных объектов MuPAD®, за исключением последовательностей и несуществующего объекта.

В MuPAD конечные множества реализованы с типом данных DOM_SET. Наборам не упорядочивают наборы произвольных объектов с одинаковыми объектами, появляющимися только однажды. Последовательности (объекты, разделенные запятыми), “сглажены”, когда помещено в набор, т.е. вместо последовательности, ее элементы помещаются в набор. Несуществующий объект обработан как пустая последовательность, т.е. это не приводит к элементу в наборе.

Наборы могут быть пустыми. Пустое множество отображено как .

Вызовы функции

Используя набор, когда функциональный символ создает набор, полученный при помощи каждого элемента как функциональный символ для операндов, используемых, т.е. результаты {f, g}(x, y) в {f(x, y), g(x, y)}.

Операции

Предположение, что S является набором, число элементов в S может быть получено путем вызова nops(S).

Отдельные элементы набора могут быть получены двумя тонко различными способами:

  1. Используя индексный доступ, как в S[2], возвращает n-th элемент набора, считаемого в порядке, когда набор появляется на экране. Это - потенциально медленная операция, поскольку она требует определения что порядок для каждого доступа, т.е. сортировка набора.

    Отрицательные индексы приняты, рассчитав от конца последовательности элементов. Попытка получить доступ к элементу “вне” набора или S[0] повышает ошибку.

  2. Используя op, как в op(S, 2), возвращает n-th элемент набора, считаемого во внутреннем порядке. Это - быстрая операция (O (n), чтобы получить n-th элемент, независимо от размера S), но внутренний порядок двух математически идентичных наборов может полностью отличаться, и почти любая операция, изменяющая набор, может полностью изменить свой внутренний порядок, таким образом, никакие предположения не должны быть сделаны.

Оба из этих путей также принимают области значений как индексы. S[2..4] возвращает набор {S[2], S[3], S[4]}, в то время как op(S, 2..4) возвращает последовательность op(S, 2), op(S, 3), op(S, 4).

Выполнить итерации по всем элементам набора без определенного порядка, с помощью map или оператора $ высоко превосходит использование for - цикл с любым из вышеупомянутых методов доступа элемента. Если for - цикл требуется, необходимо использовать форму for s in S, который имеет линейную сложность также.

Обычные операции присвоения обеспечиваются как инфиксные операции: union, minus, intersect.

Чтобы изменить элемент набора, предпочтительный метод состоит в том, чтобы удалить его с помощью minus и добавив новый с помощью union. Также возможно заменить элемент на subsop; заменение элемента с null() удаляет его из набора. (Обратите внимание на то, что subsop не делает присвоения побочного эффекта.)

Функциональный contains проверяет на вхождение данного объекта MuPAD в наборе; см. также оператор in для той же цели, но с различной семантикой оценки. select и split могут использоваться, чтобы извлечь те элементы от набора, выполняющего произвольный предикат.

Чтобы получить список элементов набора, используйте coerce. Чтобы получить такой список с элементами, упорядоченными таким же образом, как распечатано на экране, используйте DOM_SET::sort(S).

Операнды

Операнды набора являются его элементами во внутреннем порядке. (См. выше для деталей.)

Вывод

Наборы упорядочены для вывода.

Создание элемента

Самый прямой способ создать набор состоит в том, чтобы поместить последовательность объектов MuPAD (разделенный запятыми) между фигурными скобками, как в {1, 2, 3}.

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

Области MuPAD