fold

Combina os elementos de um array com uma função binária, da esquerda para a direita.

Categoria: Symbolic Computations in MATLAB > Symbolic Variables, Expressions, Functions, and Preferences

Sintaxe

r = fold(f, A)

Aplica a função de dois argumentos f cumulativamente aos elementos de A.

Descrição

fold(f, [a b c]) calcula f(f(a, b), c): os dois primeiros elementos são combinados, o resultado é combinado com o terceiro, e assim por diante. Como o agrupamento é pela esquerda, uma função não associativa como a subtração dá a - b - c, e não a - (b - c).

É uma forma prática de aplicar uma operação de dois operandos, como gcd ou lcm, a uma lista inteira de valores simbólicos.

Argumentos de entrada

f
Handle de função com dois argumentos, como @plus ou @(p, q) p*q.
A
Array simbólico a reduzir.

Argumentos de saída

r
Resultado simbólico da redução de todos os elementos.

Exemplo

Soma, produto e subtração

syms a b c
fold(@plus, [a 2*a 3*a])
fold(@(p, q) p*q, [a b c])
fold(@(p, q) p - q, [a b c])
Saída
ans = 6*a
ans = a*b*c
ans = a - b - c

Veja também

children sum prod arrayfun cumsum