Problem in using function handle?

3 views (last 30 days)
Abhinav
Abhinav on 20 Aug 2015
Commented: Abhinav on 20 Aug 2015
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?

Accepted Answer

Adam
Adam on 20 Aug 2015
Edited: Adam on 20 Aug 2015
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);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!