MATLAB Answers


Round coefficients of symbols

Asked by Brian
on 19 Jun 2013
Latest activity Answered by Image Analyst
on 7 Nov 2014

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!



No products are associated with this question.

3 Answers

Answer by 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);


Answer by Brian
on 6 Nov 2014

That is close, but not quite what I was looking for. The output of your code provided is:


out = [ 0.00000085*M + 1.895*S, 1.0*S - 0.68129354234042693860828876495361*M;

0.00000346*M + 0.00000000345*S, 1.681*M + 1.0*S]


I want the 0.00000085 and similar numbers to just say 0, disappear, or say 0.000*S. Also I'm unsure why the 0.68129354234 coefficient does not get rounded. It does round if the sign were positive instead of negative.

My desired output would be:


out = [ 1.895*S + 0.000*M, 1.000*S - 0.6813*M;

0.000*S + 0.000*M, 1.000*S + 1.681*M]



I used Digits(4) at the top of the code. This was the best I could do. Rounded everything to 4 significant figures. I was already using vpa earlier in the code as well.


Answer by 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.


Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!