MATLAB Answers

Adding an Extra Input Parameter to the Function

10 views (last 30 days)
MByk
MByk on 25 May 2018
Commented: MByk on 25 May 2018
How can I add an extra input parameter to the function below? I want to add switch-case inside the function.
[features,history] = sequentialfs(@fun,X,Y,...
'direction','forward','cv',cvt,'options',dsp_options);
function cl_err = fun(xTrain,yTrain,xTest,yTest)
.....
end

  2 Comments

Ameer Hamza
Ameer Hamza on 25 May 2018
What does switch case have to do with the input arguments? Please clarify your question.
MByk
MByk on 25 May 2018
Actually I asked this question before I want to compare different classifiers. So I planned to pass an input parameter to the function to select different classifier in each iteration. Like below. Btw all suggestions are welcomed.
function cl_err = fun(xTrain,yTrain,xTest,yTest,i)
switch i
case 1
.....
case 2
....
end
end

Sign in to comment.

Accepted Answer

dpb
dpb on 25 May 2018
Since sequentialfs is a builtin Toolbox function, you'll really not want to mess with it directly; write a wrapper function around it to use with a specific alternate name and make the modifications desired there; then have it pass the arguments on to the builtin function.

  1 Comment

Sign in to comment.

More Answers (1)

Guillaume
Guillaume on 25 May 2018
[features,history] = sequentialfs(@(xTrain,yTrain,xTest,yTest) fun(xTrain,yTrain,xTest,classifier) , ...
X,Y,'direction','forward','cv',cvt,'options',dsp_options);
function cl_err = fun(xTrain,yTrain,xTest,yTest,i)
switch i
...
Basically, create an intermediate anonymous function
@(xTrain,yTrain,xTest,yTest) fun(xTrain,yTrain,xTest,classifier)
which calls fun with the extra argument classifier (which will become i in fun).

  1 Comment

Sign in to comment.

Sign in to answer this question.

Tags