Es ist ziemlich üblich, anonyme Funktionen zu haben, die auf anderen anonymen Funktionen basieren. Es sieht aus wie f
ist das Ergebnis einer Summe von anderen anonymen Funktionen, so f
sollte gut und gut zu verwenden, sobald Sie diese Aussage in Ihrer Schleife erreichen. Der Code, den Sie geschrieben haben, verwendet jedoch keine der resultierenden anonymen Funktionen, nachdem Sie sie erstellt haben. Ich würde auch empfehlen, elementweise Operationen zu verwenden, um sicherzustellen, dass mehrere Eingaben (z. B. Matrizen/Vektoren) enthalten sein können.
Deshalb:
f = @(x, y) 0;
for iter = 1: 10
a = @(x) x.^2; % Change
b = @(y) cos(y);
c = @(x, y) a(x) + b(y);
f = @(x, y) f(x, y) + c(x, y);
end
Hier ist ein kleines reproduzierbares Beispiel zeigt, was die Kette von Aussagen wie bei einer Iteration aussehen würde, dann die resultierende endgültige Funktion f
am Ende mit:
>> f = @(x,y) 0
f =
@(x, y) 0
>> a = @(x) x.^2
a =
@(x) x .^ 2
>> b = @(y) cos(y)
b =
@(y) cos (y)
>> c = @(x, y) a(x) + b(y)
c =
@(x, y) a (x) + b (y)
>> f = @(x, y) f(x, y) + c(x, y)
f =
@(x, y) f (x, y) + c (x, y)
>> f(0.5, 7)
ans = 1.0039
>>