Octave中的函数处理方式如下所示:
上面的行表示函数
f = @sin;
从现在开始,调用函数f(x)
与调用sin(x)
具有相同的效果。到目前为止一切顺利。我的问题始于下面这个函数,它来自我的编程作业之一。
function sim = gaussianKernel(x1, x2, sigma)
上面的行表示函数
gaussianKernel
的头部。 它需要三个变量作为输入。但是,下面的调用让我困惑,因为它只传递了两个变量,然后在引用 gaussianKernel
时又传递了三个变量。model = svmTrain(X, y, C, @(x1, x2) gaussianKernel(x1, x2, sigma));
这不应该只是简单地写成model = svmTrain(X, y, C, @gaussianKernel(x1, x2, sigma));
吗?这有什么区别呢?