split

Разделите объект

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

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

Синтаксис

split(object, f, <p1, p2, …>)

Описание

split(object, f) разделяет объект в список трех объектов. Первая запись списка является объектом, состоящим из тех операндов входного объекта, которые удовлетворяют критерию, заданному процедурой f. Вторая запись списка создается из операндов, которые нарушают критерий. Третья запись списка создается из операндов, для которых это неизвестно, удовлетворяют ли критерию.

Функциональный f должен возвратить значение, которое может быть оценено к одному из булевых значений TRUEложь, или UNKNOWN. Это может или возвратить одно из этих значений непосредственно, или это может возвратить уравнение или неравенство, которое может быть упрощено до одного из этих значений функциональным bool.

Функциональный f применяется ко всему operandsx из входного объекта через вызов f(x, p1, p2, ...). В зависимости от результата TRUEложь, или UNKNOWN, этот операнд вставляется в первое, второе, или третий выходной объект, соответственно.

Выходные объекты имеют тот же тип как входной объект, т.е. список разделен в три списка, набор в три набора, таблицу в три таблицы и т.д.

Если входной объект является последовательностью выражения, то ни входная последовательность, ни выход (список, содержащий три последовательности), не сглажены.

Также “атомарные” объекты, такие как числа или идентификаторы могут быть переданы split в качестве первого аргумента. Такие объекты обработаны как последовательности с одним операндом.

Примеры

Пример 1

Следующие проверки команды, которые из целых чисел в списке являются главными:

split([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], isprime)

Возвращаемое значение является списком трех списков. Первый список содержит простые числа, второй список содержит все другие числа. Третий список пуст, потому что для любого количества списка входов, можно решить, является ли это главным или нет.

Пример 2

С дополнительными аргументами p1, p2, ... можно использовать функции та потребность больше чем один аргумент. Например, contains удобная функция должна использоваться с split. Следующий вызов разделяет список наборов в те наборы, которые содержат x и те, которые не делают:

split([{a, x, b}, {a}, {1, x}], contains, x)

Элементы возвращенного списка имеют типа DOM_LIST, потому что данное выражение было списком. Если данное выражение имеет другой тип, например, DOM_SET, также элементы результата имеют тип DOM_SET, также:

split({{a, x, b}, {a}, {1, x}}, contains, x)

Пример 3

Мы используем функциональный is разделять последовательность выражения в подпоследовательности. Эта функция возвращает UNKNOWN если это не может вывести запрошенное свойство:

split((-2, -1, a, 0, b, 1, 2), is, Type::Positive)

Пример 4

Мы разделяем таблицу людей, отмеченных как штекер или розетка:

people := table("Tom" = "m", "Rita" = "f", "Joe" = "m"):
[male, female, dummy] := split(people, has, "m"):
male

female

dummy

delete people, male, female, dummy:

Параметры

object

Список, набор, таблица, последовательность выражения или выражение типа DOM_EXPR

f

Процедура, возвращающая булево значение

p1, p2, …

Любые объекты MuPAD® приняты f как дополнительные параметры

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

Перечислите с тремя объектами того же типа как входной объект.

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

object

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

Функции MuPAD