Problem in using function handle?

3 次查看(过去 30 天)
I have written a function 'PLSR_A', which works fine. The function is as follows
[beta,yfit,q,RMSE] = PLSR_A(X,Y,npc)
I want to create a function handle in matlab 'crossval' function which will compute the cross-validation error for leave one out. Therefore, I defined a function handle as follows
fun = @(xT,yT,xt,yt) ((yt-(([1 xt])*PLSR_A(xT,yT,npc)))^2);
But when I compute fun with different 'npc' values it gives same output, however, using the function PLSR_A directly, gives different outputs for different 'npc' (which is correct).
I have read the documentation for function handle but couldn't find the problem, can anyone help?

采纳的回答

Adam
Adam 2015-8-20
编辑:Adam 2015-8-20
npc is a fixed input to that function handle, it will be set at the time the function handle is created as a constant. If you want it to be one of your input variables you need:
fun = @(xT,yT,xt,yt,npc) ((yt-(([1 xt])*PLSR_A(xT,yT,npc)))^2);

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by