# what is the meaning of @ in matlab code?

414 views (last 30 days)
Kobi on 23 Apr 2019
Commented: Guillaume on 26 Aug 2019
Hi all,
i just downloaded a matlab function from some website and saw something strange
if ~isa(A, 'function_handle')
AT = @(x) A'*x;
A = @(x) A*x;
end
what is the meaning of @?

Kobi Aflalo on 23 Apr 2019
The link you sent is a general documentation Where is the explanation
Stephen Cobeldick on 23 Apr 2019

Girish babu P on 22 Aug 2019
An anonymous function is like an inline function in traditional programming languages, defined within a single MATLAB statement. It consists of a single MATLAB expression and any number of input and output arguments.
You can define an anonymous function right at the MATLAB command line or within a function or script.
This way you can create simple functions without having to create a file for them.
The syntax for creating an anonymous function from an expression is
f = @(arglist)expression

Guillaume on 22 Aug 2019
"An anonymous function is like an inline function in traditional programming languages"
As far as I know the only other programming languages that formerly define inline functions are C and C++, and these are nothing like anonymous functions.
Many languages do have anonymous function and/or lambdas. They're usually more powerful than matlab's (allowing branching/assignment/multiple statements).
Unless all your anonymous function does is just call another function with multiple outputs, it is actually impossible to create an anonymous function with multiple outputs in matlab.
Girish babu P on 26 Aug 2019
f = @myfunction;
Now if you have a function like
function y = compSqure(x)
y = x.^2;
end
f = @compSqure;
a = 4;
b = f(a)
will give
b = 16
Guillaume on 26 Aug 2019
I have no idea what point you're trying to make but note that you started talking about anonymous function, your new comment demonstrates function handles which are not the same as anonymous functions (despite both using the symbol @)