MATLAB Answers

MByk
0

Adding an Extra Input Parameter to the Function

MByk
さんによって質問されました 2018 年 5 月 25 日
最新アクティビティ MByk
さんによって コメントされました 2018 年 5 月 25 日
dpb
さんの 回答が採用されました
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 件のコメント

Ameer Hamza
2018 年 5 月 25 日
What does switch case have to do with the input arguments? Please clarify your question.
MByk
2018 年 5 月 25 日
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

サインイン to comment.

タグ

2 件の回答

回答者: dpb
2018 年 5 月 25 日
 採用された回答

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 件のコメント

MByk
2018 年 5 月 25 日
Thank you very much.

サインイン to comment.


回答者: Guillaume
2018 年 5 月 25 日

[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 件のコメント

MByk
2018 年 5 月 25 日
Thank you very much.

サインイン to comment.



Translated by