How to remove the scientific notation such as -1.200340354078778e+11 from a matrix?

4 views (last 30 days)
Hello,
I have a matrix A that have values such as (-1.200340354078778e+11), how to remove this I order to round the values to the nearest 5 decimal? I need this matrix A to multiply it by the double matrix B.
Regards
  2 Comments
Walter Roberson
Walter Roberson on 21 Oct 2018
Edited: Walter Roberson on 21 Oct 2018
What output would you want from (-1.200340354078778e+11) ? -120030000000 ? -120034035407.87800 ?
Your invsw entries range in absolute value from 4.75582810386029e9 to 1.86639023098654e12 . Do you want them rounded to 5 decimal points individually, or 5 relative to the 1e12 value? Should 4.75582810386029e9 become 4.7558e9 (5 decimal places for it) or to 0.00476e12 so that the number of trailing 0 align for the values ?

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 21 Oct 2018
Use the format (link) function.
format short
q = -1.200340354078778e+11
q =
-1.2003e+11
The internal precision remains unchanged.
  3 Comments
Walter Roberson
Walter Roberson on 22 Oct 2018
rounding the inverse of a matrix is typically bad mathematics. Matrix inverses are rather sensitive.
Your invsw is not the inverse of sw. Your sw only has rank 87 rather than 90.
>> max(max(sw * invsw))
ans =
99117485673797.8
That should be approximately 1 if the two are inverses.

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 21 Oct 2018
Edited: madhan ravi on 21 Oct 2018
round((-1.200340354078778e+11),5)
Or
A=vpa((-1.200340354078778e+11))
round(A)
  3 Comments
madhan ravi
madhan ravi on 22 Oct 2018
Edited: madhan ravi on 22 Oct 2018
Exactly , it doesn’t change to sym as sir Walter mentioned. If you think it changes you can check class of the variable by typing whos A in command window

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!