Esiste un modo idiomatico per legare le variabili in una funzione MATLAB? Sembra che sarebbe abbastanza comune creare una funzione, associare alcuni argomenti, quindi passare la nuova funzione a un ottimizzatore di qualche tipo (nel mio caso, un risolutore di Newton). Non sembra che le regole di scope variabile consentano una soluzione con funzioni nidificate o inline. Dovrei semplicemente creare una classe? Non sembra che MATLAB abbia oggetti funzione di prima classe, è corretto? Il mio kung-fu di ricerca sta venendo su corto. Grazie!Valutazione delle funzioni parziali in MATLAB
Come esempio, supponiamo di voler trovare le radici di f (c, x) = x^3 + cx^2 + 2x + 3 per vari valori del parametro c. Ho un metodo risolutore di Newton che prende una funzione di una variabile, non di due. Quindi eseguo il loop su vari valori di c, quindi trasferisco la funzione associata al risolutore.
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
Potrebbe fornire un esempio di cosa stai parlando? Cosa c'è oltre 'f = @ (x, y) (x + y)'? –
Intendi una funzione che restituisce una funzione? per esempio. 'g = @ (base, x) (@ (x) mod (x, base)); f = g (3); 'e ora' f (x) 'è solo' mod (x, 3) '? –