Объединитесь (сворачивают) вектор с помощью функции
fold(fun,v)fold(fun,v,defaultVal)fold( возвращает значение fun,v,defaultVal)defaultVal, если v пуст.
Сверните вектор символьных переменных с помощью функции 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