Ich habe eine Funktion progammiert, nennen wir sie z(h). Wenn ich jetzt z.B. in matlab z(1) eintippe, wird h=1 gesetzt obv und ich kriege in meinem Fall einen Nx1 Spaltenvektor als Resultat. Jetzt würde ich gerne auf das k-te Element dieses Nx1 Spaltenvektors zugreifen, also quasi z(1)(k) ... howto? hier mein (unvollständiger) Code:
function r=kernreg2(x,y,h,N)
kerf=@(z,h) exp(-z.^2/(2*h^2))/(h*sqrt(2*pi));
xgrid=linspace(min(x),max(x),N);
for k=1:N
z=@(h) kerf(xgrid(k)-x,h);
w{k,1}=@(h) N * z(h)/sum(z(h));
m{k,1}=@(h) 1/N* (sum(w{k,1}(h).*y) - w{k,1}(h)(k)*Y(k,1));
end
Es geht um die letzte Zeile im for loop, das w{k,1}(h)(k). Das Program soll später dazu dienen, eine Kernel Regression durchzuführen, bei der der Bandbreite parameter h durch eine sogenannte Cross-Validiation Methode bestimmt wird, d.h. Minimierung einer Fehlerfunktion. Deswegen alle Funktionen als Funktion von h...
e: Ok, ich glaub ich hab's.. vllt schon bisschen spät. Kleiner Trick sollte es tun:
help=z(1)
help(k)
e2: Ne, geht so doch nicht. Habe ja leider kein z(1), sondern nur allgemein z(h). Und dann muss ich auch help als Funktion von h definieren, also help = @(h) ...
und dann ist das Problem wieder das alte.