2016-12-01 37 views
1

我有一个值的数组,我试图将它们都整数到整数,但我不希望它们中的任何一个变为零。MATLAB的圆形值,这些都不为零

一些值是这样的:

0.00001 
-0.03 
-0.000001 
0.789 
1 

我想取整后的结果是这样的:

1 
-1 
-1 
1 
1 

我想圆(),小区(),地板()等,但我不确定在这种情况下要做什么。有什么建议?

+0

所有的值都在-1和1之间,还是只是一些示例值? – hbaderts

+0

只是一些示例值 – Veridian

回答

2

虽然fix允许您将所有数字归零,但没有内置做相反。您可以使用数组的绝对值ceil将每个条目四舍五入至下一个最高整数,然后乘以数据的sign以将正确的符号应用于结果。

result = sign(data) .* ceil(abs(data)) 

% 1 
% -1 
% -1 
% 1 
% 1 
+0

ahh是的,我认为这应该工作。谢谢 – Veridian

+0

在我自己的MATLAB工具箱中,我有一个重载的'round'函数,其中包含选项“'break”“(与修正相反),完全是这样。 – craigim