Symbolic or function handle to numeric

Is there a way to turn a symbolic expression or function handle into a numeric expression? For example, say i have:
syms x
y=x^2;
and would like to turn it into to this
y=x^2;
Where x is no longer a symbolic variable such that when I give x a value like
x=[1 2 3];
and I type
y
I get
y=[1 4 9];
I know function handles will do this but matlab coder can not take function handles, so is there a way to do this?
Thanks
Drew

Risposte (2)

Azzi Abdelmalek
Azzi Abdelmalek il 20 Apr 2016
Modificato: Azzi Abdelmalek il 20 Apr 2016
syms x;
y=x^2;
out=subs(y,[1 2 3])

3 Commenti

Thanks, I might not have been clear enough:
Im not actually interested in the output, I am interested in making the string 'y=x^2' become y=x^2 so that I can put it in a standalone function that I can use with matlab coder. If I do what you propose I will get an error because coder cant handle symbolic variables.
have you tried inline function?
y=inline('x.^2')
That is also not supported by coder.
I appreciate the responses though Thanks!!

Accedi per commentare.

Walter Roberson
Walter Roberson il 21 Apr 2016
syms is not supported by the coder either. So anything having to do with symbolics has to be done and over with before code is generated. At the time you are running the symbolic code, you can use matlabFunction to write to a file.

Categorie

Richiesto:

il 20 Apr 2016

Risposto:

il 21 Apr 2016

Community Treasure Hunt

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

Start Hunting!

Translated by