Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How to convert from symbol to double?

Asked by Christian

Christian (view profile)

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

Christian

Christian (view profile)

Products

No products are associated with this question.

2 Answers

Answer by Walter Roberson

Walter Roberson (view profile)

on 19 Jan 2013
Accepted answer
double(subs(f))

4 Comments

Walter Roberson

Walter Roberson (view profile)

on 19 Jan 2013

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

Azzi Abdelmalek

Azzi Abdelmalek (view profile)

on 20 Jan 2013
syms x
f=cos(x);
x=10;
y=subs(f);
whos y
Walter Roberson

Walter Roberson (view profile)

on 20 Jan 2013

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

Walter Roberson

Walter Roberson (view profile)

Answer by Azzi Abdelmalek

Azzi Abdelmalek (view profile)

on 19 Jan 2013
Edited by Azzi Abdelmalek

Azzi Abdelmalek (view profile)

on 19 Jan 2013

Use

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

1 Comment

Walter Roberson

Walter Roberson (view profile)

on 19 Jan 2013

No, do not eval() syms!

Azzi Abdelmalek

Azzi Abdelmalek (view profile)

Contact us