How to declare kfun function in svmtrain

Hi all
i want to train data using polynomial kernel which have:
gamma, C, r, d.
svmtrain only has boxConstraint (C) and Polyorder (d)
so i have to declare function by my self using @kfun
i've tried many times but still got "*Function definitions are not permitted in this context.*"
where i must put this code?
function K = kfun(U,V,gamma,r)
K = gamma*(U*V')+r;
in command line and in .m script file I still got error like that
anybody can help me?
thanks before

1 件のコメント

Ahmed
Ahmed 2013 年 6 月 13 日
You are probably trying to define a function in a script file. This is not possible. Put your function in a separate m-File called kfun.m or define an anonymous function.
kfun = @(U,V,gamma,r) gamma*(U*V')+r;

サインインしてコメントする。

回答 (1 件)

Ahmed
Ahmed 2013 年 7 月 6 日
編集済み: Ahmed 2013 年 7 月 6 日

0 投票

data = randn(100,10);
groups = rand(100,1)>0.5;
g = 1;
r = 1;
svmstruct = svmtrain(data, groups, ...
'Kernel_Function',@(U,V) g*(U*V')+r,'BoxConstraint', 0.2);
(note that 'gamma' is pre-defined function, therefore you should better use another variable name)

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

製品

質問済み:

2013 年 6 月 13 日

Community Treasure Hunt

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

Start Hunting!

Translated by