MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Ikra89 on 13 Jun 2013

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

Answer by Ahmed on 6 Jul 2013

Edited by Ahmed on 6 Jul 2013

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)

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/78904#comment_154764

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.