Asked by Brian
on 19 Jun 2013

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.*

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]

*_______________________________*

**ANSWER:**

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.

Opportunities for recent engineering grads.

## 0 Comments