首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一个函数作为参数传递给另一个函数

将一个函数作为参数传递给另一个函数
EN

Stack Overflow用户
提问于 2012-10-03 21:09:53
回答 2查看 210关注 0票数 1

我看到一个函数像这样传递

代码语言:javascript
复制
sigma = 3*e-2
svmTrain(...,@(X,y)gaussianKernel(X,y,sigma),...);

这样的函数传递是怎么回事,有人能解释一下吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-03 21:14:07

语法@(X,y) gaussianKernel(X, y, sigma)通过将此现有函数guassianKernel(X, y, s)的第三个参数绑定为值sigma来创建一个anonymous function

如果您检查svmTrain函数签名,您将看到它允许传入一个函数,这就是这个匿名函数的目标。

票数 3
EN

Stack Overflow用户

发布于 2012-10-03 21:14:49

这里会发生两件事:

首先是函数传递。例如,您的代码中有一个函数foo,您希望将其作为参数传递。在本例中,您使用@运算符。

代码语言:javascript
复制
function MainScript
    goo(@foo);     
end

function goo(fHandle)
    fHandle();
end

function foo
    disp('Hello world!');
end

第二种是匿名函数。匿名函数是一个与其他函数非常相似的函数,除了它是在运行时定义的,它没有名称,并且它将传递给它的变量的本地副本绑定到自己。(有关详细信息,请参阅Closure)。例如:

代码语言:javascript
复制
 function MainScript
     foo = @() (disp('Hello world!'));
     goo(@foo);   
 end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12709226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档