split

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

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

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

Синтаксис

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

Описание

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

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

Функциональный f применяется ко всему operandsx входного объекта через вызов f(x, p1, p2, ...). В зависимости от результата TRUE, FALSE или 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