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

Для просмотра документации необходимо авторизоваться на сайте