MATLAB舍入值,使得零都不为零

时间:2016-12-01 01:22:54

标签: matlab

我有一系列的值,我试图将它们全部舍入为整数,但我不希望它们中的任何一个变为零。

有些值看起来像这样:

0.00001
-0.03
-0.000001
0.789
1

我希望四舍五入后的结果看起来像这样:

1
-1
-1
1
1

我尝试了round(),ceil(),floor()等,但我不知道在这种情况下该怎么做。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

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

%    1
%   -1
%   -1
%    1
%    1
相关问题