How to declare kfun function in svmtrain

1 次查看(过去 30 天)
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
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)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by