Change Values of array to zero

Hey guys wondering is anybody can help me out here. I have this array that prints this out:
0.6366, 0.0000, -0.2122, -0.0000, 0.1273
Which is fine.
But when I print it to a table using
set(handles.Table1, 'Data', cnarray);
It give me this:
0.6366, 3.8982e-17, -0.2122, -3.8982e-17, 0.1273
How could i fix this? I want those really low numbers to be zero. They are zero in the array when i print it out but not when i put it in a table. Help

 Respuesta aceptada

James Tursa
James Tursa el 26 de Oct. de 2016
Editada: James Tursa el 26 de Oct. de 2016
The numbers are very small but not exactly 0. They just print as 0 with the display format used. To get them to exactly 0 you could do something like this:
>> tolerance = 1e-10;
>> x = [0.6366, 3.8982e-17, -0.2122, -3.8982e-17, 0.1273]
x =
0.6366 0.0000 -0.2122 -0.0000 0.1273
>> x(abs(x)<tolerance) = 0
x =
0.6366 0 -0.2122 0 0.1273
Note that now the numbers print as 0 and not 0.0000, which indicates that the numbers are exactly 0.

Más respuestas (1)

Steven Lord
Steven Lord el 26 de Oct. de 2016
Use logical indexing to force those small values to be exactly 0.
A = [-1 -0.5 -1e-10 0.5 0 2 1e-6]
A(abs(A) <= 0.1) = 0

1 comentario

Jesse Abruzzo
Jesse Abruzzo el 26 de Oct. de 2016
This is also a good answer I just went this the other guys because he answered first. Thanks!

Iniciar sesión para comentar.

Preguntada:

el 26 de Oct. de 2016

Comentada:

el 26 de Oct. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by