¿Existe una forma idiomática de vincular variables en una función MATLAB? Parece que sería bastante común crear una función, enlazar algunos argumentos y luego pasar la nueva función a un optimizador de algún tipo (en mi caso, un solucionador de Newton). No parece que las reglas de alcance variable permitan una solución con funciones anidadas o en línea. ¿Debería simplemente crear una clase? No parece que MATLAB tenga objetos de función de primera clase, ¿es correcto? Mi búsqueda de kung-fu se está quedando corto. ¡Gracias!Evaluación de función parcial en MATLAB
Como ejemplo, supongamos que quiero encontrar las raíces de f (c, x) = x^3 + cx^2 + 2x + 3 para varios valores del parámetro c. Tengo un solucionador de métodos de Newton que toma una función de una variable, no dos. Así que recorro varios valores de c, luego paso la función enlazada al solucionador.
for c=1:10
g=f(c); % somehow bind value of c
seed=1.1; % my guess for the root of the equation
root=newton(g,seed); % compute the actual root
end
Podría dar un ejemplo de lo que estás hablando? ¿Qué es más allá de 'f = @ (x, y) (x + y)'? –
¿Te refieres a una función que devuelve una función? p.ej. 'g = @ (base, x) (@ (x) mod (x, base)); f = g (3); 'y ahora' f (x) 'es simplemente' mod (x, 3) '? –