matlab中@(x)是什么意思啊

我遇到问题,f=@(x)acos(x)这是什么意思啊?其中@代表什么... 我遇到问题,f=@(x)acos(x) 这是什么意思啊?其中@代表什么 展开
 我来答
娱乐小八卦啊a
高粉答主

2018-12-05 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117836

向TA提问 私信TA
展开全部

表示 f 为函数句柄,@是定义句柄的运算符。f=@(x)acos(x) 相当于建立了一个函数文件:
% f.m
function  y=f(x)
y=acos(x);

@是匿名函数的意思

函数句柄的使用方法也和函数是一样的。

扩展资料

匿名函数它是matlab中定义的一种函数形式,出现在matlab中,匿名函数不以文件形式驻留在文件夹上;他的生成方式最简捷,可在指令窗或任何函数体内通过指令直接生成。

匿名函数的作用主要是实现自己定义matlab中的函数,从而扩大函数的使用功能

匿名函数的调用方式

匿名函数,顾名思义就是没有名字的函数。上面的函数表达式中的创建,即创建一个匿名函数,并将匿名函数赋值给变量ss,用ss来进行函数的调用,调用的方式就是在变量ss后面加上一对括号(),如果有参数传入的话就是ss(1,2),这就是匿名函数的一种调用方式。

还有一种匿名函数的调用方式是:使用()将匿名函数括起来,然后后面再加一对小括号(包含参数列表)。

我们再看一下以下一个例子:

alert((function(x,y){return x+y;})(2,3));//5
alert(( new Function("x","y","return x+y;"))(2,3));//5

在javascript中,是没有块级作用域这种说法的,以上代码的这种方式就是模仿了块级作用域(通常成为私有作用域),语法如下所示:

(function(){
//这里是块级作用域
})();

以上代码定义并立即调用了一个匿名函数。经函数声明包含在一对圆括号中,表示它实际上是一个函数表达式。而紧随其后的另一对圆括号会立即调用这个函数。

然而要注意一点:

function(){

}();

上面的代码是错误的,因为Javascript将function关键字当作一个函数声明的开始,而函数声明后面不能加圆括号,如果你不显示告诉编译器,它会默认生成一个缺少名字的function,并且抛出一个语法错误,因为function声明需要一个名字。

但是,即便你为上面那个错误的代码加上一个名字,他也会提示语法错误,只不过和上面的原因不一样。在一个表达式后面加上括号(),该表达式会立即执行,但是在一个语句后面加上括号(),是完全不一样的意思,他的只是分组操作符。

参考资料

百度百科——匿名函数

qhbsyys
推荐于2017-09-10 · TA获得超过605个赞
知道答主
回答量:42
采纳率:0%
帮助的人:75.2万
展开全部
表示 f 为函数句柄,@是定义句柄的运算符。f=@(x)acos(x) 相当于建立了一个函数文件:
% f.m
function y=f(x)
y=acos(x);

函数句柄的使用方法也和函数是一样的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漫九月6528
2010-12-14 · TA获得超过543个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:180万
展开全部
匿名函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式