MATLAB: VPA behavior, workaround requested

Symbolic Math Toolboxvpa

Does anybody now a workaround for this behaviour of vpa?:
syms a b c
c=a+b; a=1; b=1;
vpa(c)
ans =
a + b
while
vpa(a+b)
returns the expected ans=2. I know I could define c after a and b, but in my particular program (the above is just a minimal example), this is not possible. So I am looking for a simple workaround (vpa(char(c)) also does not work).

Best Answer

Use the subs function inside the vpa call:
syms a b c
c=a+b; a=1; b=1;
vpa(subs(c))
produces:
ans =
2.0