Matlab中的@什么意思

如题所述

@fun 为一个函数柄

我自己理解
@fun 可以理解为一个fun函数的指针
如果一个函数 比如quad(@fun,x0,x1)
(这个表示对fun函数从x0到x1积分)
把@fun相当于quad的一个参数传到quad中

网上资料:
一、函数句柄

所谓函数句柄,个人认为可以将其理解成一个函数的代号,就像一个人的名字。这样在调用时可以调用函数句柄而不用调用该函数。

变量不仅可以用来表示数值(如: 1, 0.2, -5), 用来表示字符串(如: 't', 'casino'), 也可以用来表示函数哦. 当然, 你也看到了前面我们提到的函数都是一个一个的文件, 直接塞到一个变量里面似乎太大, 不过我们可以'提纲挈领', 抓住函数的handle(句柄), 就可以.
将函数句柄赋值给变量要用到@符号, 语法: 变量名=@函数名, 此处地函数名可以是当前Matlab中可以使用的任意函数 例如: , 此后mysin就和sin同样地使用, mysin(pi)和sin(pi)的含义相同.

语法如下:

变量名= @ 函数名;

@的作用就是将一个函数的函数句柄赋值给等号左边的变量。在调用函数时就可以调用该句柄,可以实现同样的功能。

例:

首先我们写一个求均值的函数:

function y=average(x)
y=mymean(x);
function a=mymean(v)
a=sum(v)/length(v);

定义一个数组z:

z=[1,2,3,4,5,6,7];

>> average(z)

ans =

4

>>

handle =

@average

>>

ave =

@average

>> ave(z)

ans =

4

二、匿名函数

匿名函数是函数句柄的一种特殊用法,这里所得到的函数句柄变量不指向特定的函数(即不指向函数M文件中的函数名),而是指向一个函数表达式(具体表达式)。

语法如下:

变量名=@(输入参数列表)运算表达式;

例子:

为了说明问题,我们用简单的两个数相加,

>>

sum =

@(x,y)x+y

>> sum(2,3)

ans =

5

http://apps.hi.baidu.com/share/detail/42436785
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-20
就是调用函数,后面的fun代表函数名
第2个回答  2018-02-28
这是计算精度的问题,不信你输入 det(inv(A))-1/det(A)便知两者其实并不完全相等(虽然理论上相等),所以一般判断两数相等是以其差小于某个阈值来判断的

matlab中@是什么意思?
是匿名函数的意思。匿名函数就像传统编程语言中的内联函数,在单个MATLAB语句中定义。 它由单个MATLAB表达式和任意数量的输入和输出参数组成。可以在MATLAB命令行或函数或脚本中定义一个匿名函数。这样就可以创建简单的函数,而无需为它们创建一个文件。从表达式创建匿名函数的语法是:f = @(arglist)expressi...

matlab中@是什么意思
@是匿名函数的意思。 f = @(x)cos(x)+2*sin(x); @(x)表示以x为变量,cos(x)+2*sin(x)为函数体 在别的函数中可以调用句柄f 比如,fplot(f,[-5,5]); 就是调用fplot函数来画匿名函数f在[-5,5]的图形。 本回答由提问者推荐 举报| 答案纠错 | 评论 31 1 mmfirefox 采纳率:48% 来自:芝麻...

matlab @ 什么意思
表示 f 为函数句柄,@是定义句柄的运算符。f=@(x)acos(x) 相当于建立了一个函数文件:% f.mfunction y=f(x)y=acos(x);是匿名函数的意思 函数句柄的使用方法也和函数是一样的。

matlab中@是什么意思啊?
是匿名函数的意思。f = @(x)cos(x)+2*sin(x);(x)表示以x为变量,cos(x)+2*sin(x)为函数体 在别的函数中可以调用句柄f 比如,fplot(f,[-5,5]);就是调用fplot函数来画匿名函数f在[-5,5]的图形。

matlab中@的意思是什么意思?
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...

MATLAB中@是什么意思
来吧,我告诉你确切的。 这个@ 准确的说是匿名函数。 例如F=@(x)+关于x的函数。 这个@相当于定义x为函数的自变量一样。 与 syms x 是一样的 。这个@ 是mat7.0更新的东西,在7.0一下是不管用的呦 。给好评呦!

matlab中的@符号是什么意思啊?
这是函数句柄的一种高级用法, 这样产生的函数句柄变量不指向特定的函数, 而是一个函数表达式. 其语法:变量名=@(输入参数列表)运算表达式 例如, 前面那个计算变量平方的函数可以简单地写为这个匿名函数:mysqr1=@(x)x.*x 之后, 执行mysqr1(变量名), 即可计算该变量的平方, 注意, mysqr1属性是函数...

matlab里的@是怎么用的
1、punct - Function handle creation @;@ 在匿名函数中表示函数句柄。2、例如ln(x),在matlab中是没有定义的,正确表示是log(x);但如果要直观表示自然对数,意义用以下语句表示:ln=@(x) log(x);执行后,ln(4)=log(4) , 即用ln 替换 log。3、poly6 = @(x) 8*x.^6+6*x.^5+...

matlab里@是干什么用的?
定义了一个匿名函数,@左端是函数句柄,@(t)表示函数变量为t,函数表达式为heaviside(t-4)参考资料:http:\/\/hi.baidu.com\/okhz\/blog\/item\/e9686e017f9f690b728da567.html

matlab里的@是怎么用的
@在匿名函数中表示函数句柄例如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;...

相似回答