MATLAB Answers

0

How to convert from symbol to double?

Asked by Christian on 19 Jan 2013

Hi,

I am pretty new to MATLAB, so this might be a stupid question. However, I am encountering a problem when i try to convert a matrix of 1x1 symbols into a matrix with doubles, where the symbols are converted to doubles each. Each element in the matrix is a function of a lot of symbols, which I need somehow to convert into numbers. I have something like this:

    syms x y;
    f = function of x and y
    x = 2;
    y = 3;
    f.

However, doing this gives me f as a function of the syms x and y, and not the numbers 2 and 3... Hope you can somehow help me, as Im kinda stuck in my coding.

Regards, Christian

  0 Comments

Log in to comment.

2 Answers

Answer by Walter Roberson
on 19 Jan 2013
 Accepted Answer

double(subs(f))

  4 Comments

Show 1 older comment

Because subs() would result in symbolic numbers after substitution. double() finishes the conversion to numeric.

syms x
f=cos(x);
x=10;
y=subs(f);
whos y

I do not have the Symbolic Toolbox to test this with.

Log in to comment.


Answer by Azzi Abdelmalek
on 19 Jan 2013
Edited by Azzi Abdelmalek
on 19 Jan 2013

Use

suyms x
f=cos(x);
x=10;
eval(f)

  1 Comment

No, do not eval() syms!

Log in to comment.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Win prizes and improve your MATLAB skills

Play today