How to tell vpa command to consider digits after decimal point' only?
7 views (last 30 days)
Show older comments
Hello friends,
I have a simple question, I think! I have a symbolic expression S with numeric coefficients. I need to round the coefficients
up to some digits 'AFTER DECIMAL POINT' only (note that I do not know, beforehand, how many digits my numbers have, so, I want to keep all digits before decimal point and a few after that). So, if I use vpa(S,4) then it only considers 4 digits in total and does not respect my what I want. Let me use a simple example as bellow:
syms x y
f=34344.4545*x+45.6566*y;
now, vpa(S,4) gives me
34340.0*x + 45.66*y
and this is not what I want since the first coefifcient is badly rounded. Of course, in this exmple I could use vpa(S,8) to get 34344.454*x + 45.6566*y but please note that "I do not know, beforehand, how many digits my coefficients have in general".
Any idea?
Thanks in advance!
Babak
0 Comments
Answers (1)
Walter Roberson
on 28 Dec 2021
syms x y
f = 34344.4545*x+45.6566*y;
newF = mapSymType(f, 'constant', @(v) round(v,4))
0 Comments
See Also
Categories
Find more on Numbers and Precision in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!