Round coefficients of symbols
Show older comments
I have a solution matrix with equations and coefficients in front of symbols. I want to round them to a certain decimal.
example: X=[1.89545464564*S+0.00000085*M, 1.00000055*S-0.68129354234*M; 0.00000000345*S+0.00000346*M, 1.00004353*S+1.68129354234*M];
How to round the coefficients that are in front of S and M in my matrix to something like 2 or 3 decimal places.
Thank you!
Answers (4)
Andrei Bobrov
on 19 Jun 2013
syms M S
X=[1.89545464564*S+0.00000085*M, 1.00000055*S-0.68129354234*M; 0.00000000345*S+0.00000346*M, 1.00004353*S+1.68129354234*M];
out = vpa(X,4);
Image Analyst
on 7 Nov 2014
Use the second argument for round(). From the (R2014b) help for round():
Y = round(X,N) rounds to N digits:
N > 0: round to N digits to the right of the decimal point.
N = 0: round to the nearest integer.
N < 0: round to N digits to the left of the decimal point.
1 Comment
amin ya
on 8 Jul 2019
These are symbolic variables. round doesnot work for syms
Carlos
on 8 Dec 2022
0 votes
Hope it's not too late:
syms M S
X=vpa([1.89545464564*S+0.00000085*M, 1.00000055*S-0.68129354234*M; 0.00000000345*S+0.00000346*M, 1.00004353*S+1.68129354234*M]);
for i = 1:length(X)
Coef = coeffs(X(i));
for j = 1:length(Coef)
if Coef(j) < 0.001 %you can change 0.001 to adjust precision
X(i) = subs(X(i),Coef(j),0);
end
end
end
X = vpa(X,5) %use vpa becouse the function subs adds unwanted decimals.
Categories
Find more on Assumptions 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!