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
в качестве первого аргумента. Такие объекты обработаны как последовательности с одним операндом.
Следующие проверки команды, которые из целых чисел в списке являются главными:
split([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], isprime)
Возвращаемое значение является списком трех списков. Первый список содержит простые числа, второй список содержит все другие числа. Третий список пуст, потому что для любого количества списка входов, можно решить, является ли это главным или нет.
С дополнительными аргументами 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)
Мы используем функциональный is
разделять последовательность выражения в подпоследовательности. Эта функция возвращает UNKNOWN
если это не может вывести запрошенное свойство:
split((-2, -1, a, 0, b, 1, 2), is, Type::Positive)
Мы разделяем таблицу людей, отмеченных как штекер или розетка:
people := table("Tom" = "m", "Rita" = "f", "Joe" = "m"): [male, female, dummy] := split(people, has, "m"):
male
female
dummy
delete people, male, female, dummy:
|
Список, набор, таблица, последовательность выражения или выражение типа |
|
Процедура, возвращающая булево значение |
|
Любые объекты MuPAD® приняты |
Перечислите с тремя объектами того же типа как входной объект.
object