Czy istnieje idiomatyczny sposób wiązania zmiennych w funkcji MATLAB? Wydaje się, że byłoby dość powszechne utworzenie funkcji, powiązanie kilku argumentów, a następnie przekazanie nowej funkcji do jakiegoś optymalizatora (w moim przypadku solver Newtona). Nie wygląda na to, że reguły o zmiennym zakresie pozwalają na rozwiązanie z funkcjami zagnieżdżonymi lub wbudowanymi. Czy powinienem po prostu stworzyć zajęcia? Wygląda na to, że MATLAB nie ma pierwszorzędnych obiektów funkcyjnych, czy to prawda? Moje poszukiwania kung-fu są coraz krótsze. Dzięki!Częściowa ocena funkcji w MATLAB
Jako przykład, przypuśćmy, że chcę znaleźć korzenie f (c, x) = x^3 + cx^2 + 2x + 3 dla różnych wartości parametru c. Mam metodę Newtona, która przyjmuje funkcję jednej zmiennej, a nie dwóch. Pętliłem więc różne wartości c, a następnie przekazałem związaną funkcję do solwera.
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
Mógłbyś podać przykład tego, co mówisz? Co to jest poza 'f = @ (x, y) (x + y)'? –
Masz na myśli funkcję zwracającą funkcję? na przykład 'g = @ (podstawa, x) (@ (x) mod (x, podstawa)); f = g (3); 'a teraz' f (x) 'to po prostu' mod (x, 3) '? –