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

 采纳的回答

James Tursa
James Tursa 2016-10-26
编辑:James Tursa 2016-10-26
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.

更多回答(1 个)

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 个评论

This is also a good answer I just went this the other guys because he answered first. Thanks!

请先登录,再进行评论。

类别

Community Treasure Hunt

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

Start Hunting!

Translated by