Trying to write a function using @

4 views (last 30 days)
ssmith
ssmith on 17 Nov 2021
Commented: John D'Errico on 17 Nov 2021
I am trying to write this function in my code but I am getting an invalid MATLAB syntax error. The equation is g(x) = sin(x)/x
Here is what I have:
g = @x sin(x)/x
g(1)
g(pi)
The g(1) and g(pi) are to be used calling the function to solve.

Accepted Answer

Stephen23
Stephen23 on 17 Nov 2021
Edited: Stephen23 on 17 Nov 2021
g = @(x) sin(x)/x;
% ^ ^ you forgot these
g(1)
ans = 0.8415
g(pi)
ans = 3.8982e-17
  1 Comment
John D'Errico
John D'Errico on 17 Nov 2021
A good addendum is that IF you want this function to be vectorized, thus able to work for an entire vector or array of inputs elements, then use the ./ operator. Thus:
g = @(x) sin(x)./x;
(Without that dot in there, you will get strange results when you try to use this function on a vector.) But now we can use g on entire vectors.
g([1 2 3 4 5])
ans = 1×5
0.8415 0.4546 0.0470 -0.1892 -0.1918
The singularity at x==0 is unresolved of course, since 0/0 is undefined..
g(0)
ans = NaN
We can even plot it nicely without any arguments from MATLAB, thus
fplot(g,[-10*pi,10*pi])

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!