fold

Объединитесь (сворачивают) вектор с помощью функции

Описание

пример

fold(fun,v) сгибы v при помощи fun. Таким образом, fold вызовы fun на первых двух элементах v, и затем неоднократно вызовы fun на результате и следующем элементе, пока не объединен последний элемент. Программно, операцией сгиба является fold(fun,v) = fun(fold(fun,v(1:end-1)),v(end)).

пример

fold(fun,v,defaultVal) возвращает значение defaultVal если v isempty.

Примеры

Сверните вектор Используя функцию

Сверните вектор из символьных переменных с помощью power функция. Выход показывает как fold элементы объединений вектора слева направо при помощи заданной функции.

syms a b c d e
fold(@power, [a b c d e])
ans =
(((a^b)^c)^d)^e

Примите, что переменная принадлежит множеству значений

Примите переменную x принадлежит множеству значений 1, 2..., 10 путем применения or к условиям x == 1..., x == 10 использование fold. Проверяйте, что предположение установлено при помощи assumptions.

syms x
cond = fold(@or, x == 1:10);
assume(cond)
assumptions
ans =
x == 1 | x == 2 | x == 3 | x == 4 | x == 5 |...
 x == 6 | x == 7 | x == 8 | x == 9 | x == 10

Задайте значение по умолчанию операции сгиба

Задайте значение по умолчанию fold когда вход пуст путем определения третьего аргумента. Если третий аргумент не задан, и вход пуст, то fold выдает ошибку.

При создании функции, чтобы суммировать вектор, задайте значение по умолчанию 0, таким образом, что функция возвращает 0 когда вектор пуст.

sumVector = @(x) fold(@plus, x, 0);
sumVector([])
ans =
     0

Входные параметры

свернуть все

Функция раньше сворачивала вектор в виде указателя на функцию.

Пример: @or

Вектор, чтобы свернуться в виде вектора, символьного вектора или вектора ячейки. Если элемент v символьная функция, затем формула символьной функции используется путем вызова formula.

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

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

|

Введенный в R2017b