MATLAB Answers

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;
what is the meaning of @?


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

Sign in to comment.

Accepted Answer

Girish babu P
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
Girish babu P on 26 Aug 2019
f = @myfunction;
Now if you have a function like
function y = compSqure(x)
y = x.^2;
f = @compSqure;
a = 4;
b = f(a)
will give
b = 16
plz gothrough this links.
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 @)

Sign in to comment.

More Answers (0)

Sign in to answer this question.