4
$\begingroup$

Suppose I have the following MATLAB code.

syms a b c1 c2

c1 = a + b + pi*b
c2 = a + b + 0.5*b

Then c1 gets evaluated to a + b + pi*b and c2 to a + (3*b)/2

However, I need MATLAB to calculate double-precision values for the coefficients for a and b and not just symbolic expressions.

How do I do this? e.g. I want c1 to be evaluated as a + 4.1416*b and c2 as a + 1.5*b.

Also, suppose I am interested in doing arithmetic like c1*c2, c1*5, I would like the coefficients of a and b to evaluated as numbers.

How should I do this?

$\endgroup$
  • $\begingroup$ @ChristianClason - feel free to move your comments to an answer. $\endgroup$ – Aron Ahmadia Nov 26 '12 at 22:54
  • $\begingroup$ @AronAhmadia - done! $\endgroup$ – Christian Clason Nov 27 '12 at 11:45
4
$\begingroup$

To evaluate a symbolic expression numerically, you can use subs to insert numerical values for symbolic variables:

>> subs(c1,{a,b},{1.1,1.2})

ans =

    6.0699

(Note that as long as a and/or b are symbolic variables, I don't see a point in evaluating pi or 3/2 numerically. However, vpa seems to do what you want.)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.