matlab中语句f=@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)中@(x,y)是什么意思?

如题所述

matlab中语句f=@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)中@(x,y)的意思如下:

其中的@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)为匿名函数,第一个括号里面是自变量,第二个括号里面是表达式,@是函数指针

f=@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)表示将匿名函数@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)赋值给f,于是f就表示该函数。

扩展资料:

@在匿名函数中表示函数句柄。例如ln(x),在matlab中是没有定义的,正确表示是log(x);

但如果要直观表示自然对数,意义用以下语句表示:

ln=@(x) log(x);

执行后,ln(4)=log(4) , 即用ln 替换 log。

以上表示可能无法看出‘@’的好处,再看下例:

poly6 = @(x) 8*x.^6+6*x.^5+3*x.^3+x.^2+x+520;

fplot(ploy6,[0,100]);

fzero(ploy6,13);

在这种长且多次调用的情况下,用函数句柄就可以方便很多。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-10
这是个函数句柄 @(x,y) 表示未知数是x和y
punct - Function handle creation @
@ 在匿名函数中表示函数句柄
例如ln(x),在matlab中是没有定义的,正确表示是log(x);
但如果要直观表示自然对数,意义用以下语句表示:
ln=@(x) log(x);
执行后,ln(4)=log(4) , 即用ln 替换 log。
以上表示可能无法看出‘@’的好处,再看下例:
poly6 = @(x) 8*x.^6+6*x.^5+3*x.^3+x.^2+x+520;
fplot(ploy6,[0,100]);
fzero(ploy6,13);
在这种长且多次调用的情况下,用函数句柄就可以方便很多。本回答被提问者和网友采纳
第2个回答  2011-07-24
f=@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)
其中@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)为匿名函数,第一个括号里面是自变量,第二个括号里面是表达式,@是函数指针
f=@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)表示将匿名函数@(x,y)exp(-x.^2/3).*sin(x.^2+2*y)赋值给f,于是f就表示该函数。
相似回答