change number of sig figs in a list of numbers
Mostrar comentarios más antiguos
basically i have a list of numbers, all with the same number of significant figures. an example of a number is :
734504.0749692708
I want to make this number the following: 734504.07
But the important thing is that I do not want to round. Also, I want to actually change the value, not simply how it is displayed. Matlab knows the exact value, and only displays 5 sig figs from the total of 16. I want to completely drop the last 8 figures in order to give me the above number. any way to do this?
Respuesta aceptada
Más respuestas (2)
Andrei Bobrov
el 24 de Mayo de 2011
more (EDIT)
N = 734504.0749692708
Ns = fix(N*100)/100
more more
"I want to completely drop the last 8 figures in order to give me the above number."(Michael):
pwr = 10^(8-ceil(log10(N)))
Ns = fix(N*pwr)/pwr
1 comentario
Matt Fig
el 24 de Mayo de 2011
ROUNDN is only available with the mapping toolbox, correct?
Walter Roberson
el 24 de Mayo de 2011
0 votos
It is not possible to store exactly 734504.07 in MATLAB double .
The algorithms that Matt and Andrei posted can only produce approximations of the number you want. For example, Andrei's solution produces the value 734504.069999999948777258396148681640625 . This is not a bug in Andrei's solution, but rather a limitation in what can be represented in MATLAB without using the Fixed Point Toolbox or the Symbolic Math Toolbox.
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!