MATLAB: Trouble substituting a value into a symbolic expression for use with fplot

fplotsymbolic

I'm having difficulty understanding what I'm doing wrong here:
syms x a
f=exp(x-a);
g=subs(f,'a',sym(0));
fplot(g,[-5 5])
I get the error:
Error using fcnchk (line 103)
If FUN is a MATLAB object, it must have an feval method.Error in fplot (line 61)
fun = fcnchk(fun);
If I explicitly define g as being a symbolic function:
fplot(@(x)g,[-5 5])
Undefined function 'isfinite' for input arguments of type 'sym'.
Error in fplot (line 113)
J = find(isfinite(y));
I clearly am not understanding the way the symbolic toolbox works and would appreciate a pointer.

Best Answer

The command fplot only takes function handles, not symbolic objects. The easiest way to plot symbolic objects is using ezplot:
ezplot(g,[-5 5])
If you want to use fplot, you can use the command matlabFunction to convert the symbolic object into a MATLAB anonymous function:
fplot(matlabFunction(g),[-5 5])