select

Выберите операнды

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

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

Синтаксис

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

Описание

select(object, f) возвращается копия объекта со всеми операндами удалила, которые не удовлетворяют критерию, заданному процедурой f.

select быстрая и удобная функция для того, чтобы выбрать элементы списков, наборов, таблицы и т.д., которые удовлетворяют критерию, установленному процедурой f.

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

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

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

Входной объект, который является последовательностью выражения, не сглажен. См. Пример 2.

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

Примеры

Пример 1

select списки указателей и наборы. В первом примере мы выбираем все истинные операторы из списка логических операторов. Результатом является снова список:

select([1 = 1, 1 = 2, 2 = 1, 2 = 2], bool)

В следующем примере мы извлекаем подмножество всех элементов, которые распознаны нулем iszero:

select({0, 1, x, 0.0, 4*x}, iszero)

select также работает над таблицами:

T:= table(1 = "y", 2 = "n", 3 = "n", 4 = "y", 5 = "y"):
select(T, has, "y")

Следующее выражение является суммой, т.е. выражением типа "_plus". Мы извлекаем сумму всех условий, которые не содержат x:

select(x^5 + 2*x + y - 4, _not@has, x)

Мы извлекаем все факторы, содержащие x от следующего продукта. Результат является продуктом точно с одним фактором, и поэтому, не имеет синтаксический тип "_mult":

select(11*x^2*y*(1 - y), has, x)

delete T:

Пример 2

select работает на последовательности выражения:

select((1, -4, 3, 0, -5, -2), testtype, Type::Negative)

Команда $ генерирует такие последовательности выражения:

select(i $ i = 1..20, isprime)

Атомарные объекты обработаны как последовательности выражения длины один:

select(5, isprime)

Следующим результатом является пустой объект null() из типа DOM_NULL:

domtype(select(6, isprime))

Пример 3

Возможно передать “анонимную процедуру” select. Это позволяет выполнять более комплексные действия с одним вызовом. В следующем примере, команда anames(All) возвращает набор всех идентификаторов, которые имеют значение на текущем сеансе MuPAD®. select оператор извлекает все идентификаторы, начинающиеся с буквы "h":

select(anames(All), x -> expr2text(x)[1] = "h")

Параметры

object

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

f

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

p1, p2, …

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

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

Объект того же типа как входной объект.

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

object

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

Функции MuPAD