MATLAB: Why get a symbolic result in the workspace

MATLABsubssymbolic

Hi everyone,
I run a matlab code containing symbolic variables in it. When I use "subs" code to substitute all of the symbolic variables in a variable with numerical values, after computation, I obtain a symbolic format result of the variable in the workspace in matlab. but when i use findym() to check which symbolic variable in it, I find no symbolic ones exist in it. just as the following for instance for brevity because my code is too long:
syms a b;
c=a+b;
d=subs(c,[a,b],[1,2]);
normally d should be a numerical value, but it is symbolic
It is quite strange.
Could anyone give a reason for this? Thanks so much for your help!

Best Answer

subs() converts numeric values into symbolic form and does the substitution in symbolic form giving a symbolic answer. The symbolic answer might possibly only contain numbers and constants such as Pi and operations on these, and so might completely represent a specific numeric value -- or the symbolic answer might be approximatible as a specific numeric value (e.g., it might have been calculated in more digits than fit into a MATLAB numeric value.)
To convert a symbolic representation of a number into a MATLAB numeric representation, apply double() to the symbolic form.