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
@plusou@(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