# MATLAB: Evaluating a symbolic heaviside function using subs at points where disconuities are located

discontinuityfunctionheavisidejumpmacaulaysymbolic

When trying to evaluate a symbolic function, Matlab outputs 'Nan' when it encounters discontinuities.
syms x f = 22*heaviside(x - 5)*(x - 5) - 20*heaviside(x - 2)*(x - 2) - 20*heaviside(x - 3)*(x - 3) - 10*heaviside(x - 1)*(x - 1) + 28*x*heaviside(x)fplot(diff(f,1),[-2 6])x = [1 2 3 4] subs(diff(f,1))
The output is
ans =[ NaN, NaN, NaN, -22]
However, I would like to know the value at 1+,2+,3+ and so on so the desired output is [18 -2 -22 -22]. Is there a way to deal with disconituities by outputting the function value as x approaches a particular value from the left or right without typing for example subs(diff(f,1.0001)) or subs(diff(f,1+eps))?

syms x f = 22*heaviside(x - 5)*(x - 5) - 20*heaviside(x - 2)*(x - 2) - 20*heaviside(x - 3)*(x - 3) - 10*heaviside(x - 1)*(x - 1) + 28*x*heaviside(x)g = diff(f,1); % g is differentiation of flimit(g,x,1,'right') % this gives the right limit of function g at x = 1