Eliminate decimals past the thousandths place in a table

3 次查看(过去 30 天)
I have a table being pulled from a database that contains 'string' and 'double' data that being a parameter name and it's associated limits. I am currently trying to eliminate replicate data using the unique function however some of the data that is considered duplicated is not removed because it has either 14 or 16 trailing zeros. I would like to eliminate the zeros past the thousandths place.
Fix, Ceil, Round, and Floor do not work with tables.
  3 个评论
Adam Danz
Adam Danz 2020-1-21
编辑:Adam Danz 2020-1-21
If those values are considered unique by the unique() function that eliminates the possibility that you're just using a long format such as
format long
but if those values are numeric, it suggests that they have some trailing non-zero decimal values, otherwise they wouldn't end in a string of 0s.
You could round all of your values to the thousandths place by using
round(x,3)

请先登录,再进行评论。

采纳的回答

Adam Danz
Adam Danz 2020-1-21
If those values are considered unique by the unique() function that eliminates the possibility that you're just using a long format such as
format long
but if those values are numeric, it suggests that they have some trailing non-zero decimal values, otherwise they wouldn't end in a string of 0s.
You could round all of your values to the thousandths place by using
round(x,3)
  6 个评论
Adam Danz
Adam Danz 2020-1-22
Yeah, I'd try Walter's suggestion first by replacing the unique function my previous comment with uniquetol. If that doesn't work, you could play around with tolerance level. See C = uniquetol(A,tol)
If all else fails, you can round that column of data using
T.Var = round(T.Var,3);
where T is your table and var is the column's variable name.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by